How I Used to Think Black and White Stripes Belonged Only on Zebras Walt Woods, 2008 MECOP at Datalogic Mobile Inc. Eugene, OR, USA Datalogic Mobile Inc. as an Employer Datalogic Mobile Inc • Original Equipment Manufacturer (OEM) of data collection devices – Major manufacturer of handheld PDTs and PDAs – Vehicle Mounted scanners • Barcodes (1D and 2D), RFID, and Magnetic Stripe cards • Windows CE and Windows Mobile Datalogic Mobile Inc. in Eugene: A Brief History • 1961: Spectra-Physics Inc. founded • 1974: First commercial barcode scan (by a Spectra-Physics device, • • • • • nonetheless) 19XY, 74 <= XY <= 96: Spectra-Physics moves to Eugene 1980: Percon founded; Easy-Read scanner 1996: PSC acquires Spectra-Physics Scanning Systems 2000: PSC acquires Percon Inc. 2005: Datalogic acquires PSC • April 2nd, 2007: “Day One” of Datalogic Scanning, Datalogic Automation, and Datalogic Mobile How They Treat Interns • $18/hour (1st Internship) • 40 hours/week – Flexible hours aside from meetings – Overtime acceptable for time-sensitive, important projects • Discount at a local health club My Corner of the World Software Research & Development • Datalogic Mobile has two SW R&D groups – Eugene’s software R&D consists of 5 people (excluding myself) – Bologna’s software R&D consists of 7 people • Semi-autonomous • First fully joint project this year Reporting Hierarchy Gian Paolo Fedrigo Francesco Montanari Stefano Amorosi Director of R&D Mike Quick Eugene R&D John McConnell SW Group Manager Pat Watkins Eric Freel Tim Tendick SW Test Bologna R&D Ankush Vimawala Walt Woods Software Test • Eugene’s is Datalogic Mobile’s only test group • Responsible for Validation and Verification of all products’ requirements • 3 People Marketing • Represents customers • Significant stakeholder in most products Due Process PREMR Process Product Requirements Document Software Design Document Software Project Management Plan Software Software Requirements Specification External Design Document Some Trees and Potted Plants I Left Behind My Projects • First CE Application • • • • • • • • – Starstrike SerialX DLConfigManager / DDUConfig Remote Automation Library Audio Drivers Headset Control Panel Datalogic Configuration Utility / WISE Datalogic Firmware Utility Coprocessor Communications Definitions • ROI – Return on Investment – I do not have accurate figures to estimate these monetarily • Instead, I present the two following metrics: – E-Ratio – Effectiveness Ratio: Measured in ratio of “Direct Usefulness to the business + Indirect Usefulness through applicable experience” compared to “Development time”. Use this as ROI if you want. – SAT - Satisfaction – Percentage (0-100) personal satisfaction with the solution as I left it. Zero implies that I feel my contributions should be scrapped; 100 implies that I think my solution is the absolute best solution possible for the project My Projects • First CE Application • • • • • • • • – Starstrike SerialX DLConfigManager / DDUConfig Remote Automation Library Audio Drivers Headset Control Panel Datalogic Configuration Utility / WISE Datalogic Firmware Utility Coprocessor Communications First CE Application • No prior CE experience • Familiarized me with • • Datalogic’s barcode SDK 1.5 Weeks spent tinkering E-Ratio 1:1, SAT 40% – Saved time later – Had I included more GUI elements, would have been more useful My Projects • First CE Application • • • • • • • • – Starstrike SerialX DLConfigManager / DDUConfig Remote Automation Library Audio Drivers Headset Control Panel Datalogic Configuration Utility / WISE Datalogic Firmware Utility Coprocessor Communications Starstrike • Quick project to • • familiarize myself with GDI functions 1-2 Days to make E-Ratio 3:1, SAT 80% – Used most this knowledge later – Re-used basic code for subsequent projects – Directly contributed to headset control panel My Projects • First CE Application • • • • • • • • – Starstrike SerialX DLConfigManager / DDUConfig Remote Automation Library Audio Drivers Headset Control Panel Datalogic Configuration Utility / WISE Datalogic Firmware Utility Coprocessor Communications Serial X • Windows app that erases the serial number from Pegaso units – Directly modifies flash • Used by repair in some situations • 2 Weeks • E-Ratio 6:1, SAT 50% – Needed functionality – Also assessed perceived failure of flash erasure – It’s never particularly satisfying to find out that a week was spent to determine nothing was wrong My Projects • First CE Application • • • • • • • • – Starstrike SerialX DLConfigManager / DDUConfig Remote Automation Library Audio Drivers Headset Control Panel Datalogic Configuration Utility / WISE Datalogic Firmware Utility Coprocessor Communications DLConfigManager / DDUConfig • Reads settings from device, spits out XML representation of GUI • Plugs into DCU • 2 Weeks – Initial version only took 1 week. Turns out there’s a reason to spend more time on projects • E-Ratio 10:1, SAT 90% – Developed fairly rapidly – Very quick to modify, good backwards compatibility support – Required functionality My Projects • First CE Application • • • • • • • • – Starstrike SerialX DLConfigManager / DDUConfig Remote Automation Library Audio Drivers Headset Control Panel Datalogic Configuration Utility / WISE Datalogic Firmware Utility Coprocessor Communications Remote Automation Library • Allows control and • • • querying of device through PC link Designed to aid GUI testing 4 Weeks E-Ratio 0:1, SAT 80% – At the moment, not used; test is too busy to employ time learning to use it – The solution seems to work great though My Projects • First CE Application • • • • • • • • – Starstrike SerialX DLConfigManager / DDUConfig Remote Automation Library Audio Drivers Headset Control Panel Datalogic Configuration Utility / WISE Datalogic Firmware Utility Coprocessor Communications Audio Drivers • Experimenting with ways to clean up signal for VR software • Band pass filters, fourier transforms, band compression • 4 Weeks • E-Ratio 1:4, SAT 60% – Microphone volume meter is used in Headset Control Panel – Sadly, the filters degraded signal performance – Learned a lot about waveform drivers and mathematical filters My Projects • First CE Application • • • • • • • • – Starstrike SerialX DLConfigManager / DDUConfig Remote Automation Library Audio Drivers Headset Control Panel Datalogic Configuration Utility / WISE Datalogic Firmware Utility Coprocessor Communications Headset Control Panel • Allows users to • • control microphone gain and amp boost 1 Week E-Ratio 4:1, SAT 80% – Required functionality – Simple design, works well My Projects • First CE Application • • • • • • • • – Starstrike SerialX DLConfigManager / DDUConfig Remote Automation Library Audio Drivers Headset Control Panel Datalogic Configuration Utility / WISE Datalogic Firmware Utility Coprocessor Communications Datalogic Configuration Utility / WISE • Fixed various bugs • Contributed basic • • password encryption scheme 1 Week E-Ratio 1:1, SAT 60% – Closing bugs is kind of fun – Weak password scheme My Projects • First CE Application • • • • • • • • – Starstrike SerialX DLConfigManager / DDUConfig Remote Automation Library Audio Drivers Headset Control Panel Datalogic Configuration Utility / WISE Datalogic Firmware Utility Coprocessor Communications Datalogic Firmware Utility • Fixed a few WISE installer bugs • Updated for Vista compatibility – Swapped out USB drivers (old Jungo for new) – Updated Serial driver – Replaced ActiveSync detection method • 1 Week • E-Ratio 5:1, SAT 90% – Quick patch – Supporting a new OS is important – Made future replacements of Jungo easier My Projects • First CE Application • • • • • • • • – Starstrike SerialX DLConfigManager / DDUConfig Remote Automation Library Audio Drivers Headset Control Panel Datalogic Configuration Utility / WISE Datalogic Firmware Utility Coprocessor Communications Coprocessor Communications • Designed (read: adapted old) coprocessor communication protocol for Next Gen products • First experience writing Serial communication code • 2 Weeks • E-Ratio 4.5:1, SAT 60% – Specs are important, particularly when development is physically split (Eugene and Bologna) – Directly influences Next Generation of products – Networking is something of a hobby Other Things of Note Pegaso Presentation • Learned about: – – – – Windows CE Image Build process Image layout in RAM Coprocessor functionality – CPU Boot Procedure Diagnosing System Lockups • Interesting lock-up caused more than a few headaches around the office • No reason for the lockup was immediately apparent • Grand example of unknown bug analysis – Isolate conditions – Determine contributors – Craft and try solutions Task Switching • Writing two • It’s hard to write • sentences at once • this way • is hard. • There was a great deal of this, though usually it was to a good effect Thana Schafer • Owns and displays a • • crowbar in her office Lies to boys Takes scary pictures RAPIt Up That’s a bad pun. In other words: last words. Helpful Courses • • • • • • • CS161/162 – Intro to CS CS261 – Data Structures CS311 – Operating Systems CS325 – Analysis of Algorithms CS361 – Software Engineering I ENGR201/202 – Electrical Fundamentals ECE375 – Computer Organization & Assembly Language • Notable omissions: CS362 Overall Impressions • Datalogic Mobile makes quality, diverse products • Wide variety of tasks to choose from – As well as plenty of interesting odds and ends to keep an intern busy • Excellent balance of work and play