TITLE OF PAPER: URL OF PRESENTATION: _URL_of_powerpoint_presentation_ PRESENTED BY: George Belotsky REPRESENTING: Open Light Software CONFERENCE: PyCON 2004 DATE: 20040325 LOCATION: Amphitheater -------------------------------------------------------------------------- REAL-TIME NOTES / ANNOTATIONS OF THE PAPER: {If you've contributed, add your name, e-mail & URL at the bottom} Commercial Python users: - (three companies, missed them) Prediction: the PC will go the way of the mainframe; embedded systems will dominate; the Space Odyssey comes to life. ("A swarm of micro-monoliths" -- zero maintenance, self-contained devices) Small systems embedded linux is the high end typical is 8-bit processors, a few K ROM, <1K RAM real-time requirements common where does python fit in? doesn't run on the embedded device (?), runs on the dev PC bridge between PC and embedded devices, embedded networks important development tool python performance not an issue -- constraints are on embedded device Development PC -> cross compiler -> 'programmer' device or RS-232 serial line -> target device Python for build env, code gen, unit tests, debugging, rapid prototyping Deployment [diagram of network(s) and devices] Python for control panels, troubleshooting, internationalization, gateway Example tools MSPGCC (GCC port to MSP 430 microcontroller) Python to load firmware onto device PyJTAG and PyBSL -- tools for firmware loading(?) PySerial x-plat serial io module, allows commo to embedded device wxPython for building complex UIs Tkinter for simpler UIs Std Python Modules (that are especially useful) ConfigParser- lots of configuration on the PC side for test suites, host interfaces re- many protocols are ASCII-based unittest- particularly vital for embedded systems (quantity, difficulty of update) Success story Carmanah Technologies wireless solar lighting systems advanced power management is critical Python at Carmanah glue for dev tool chain stress and unit tests device simulators and control panels example apps crosswalk traffic beacon airfield lighting systems Demo of crosswalk simulator hardware does not (fully) exist when development starts sim allows dev w/minimal hardware great for demos to non-tech people Credits Carmanah, Open Light Software (presenter), openphoto.net (creative commons source for photos) (his slide backgrounds) Demo rendering of prototype flashing red lights on screen and from an attached real device start flashing from PC or from device and other responds Q: what kind of link, 802.11b? A: straight RS-232 Q: did the company have any pushback about using python? A: in beginning, skepticism about whole open source tool chain. Most important for pitch: they don't have to throw out all their existing skills; no vendor, forced upgrades, etc -- non-threatening. Q: most PCs and laptops don't have rs-232 ports -- do usb to serial adapters work? A: yes, no problem (audience member: can also buy a $1 hardware adapter) Q: timing -- how is control flow in python handled under realtime demands? A: a lot of things are not real-time (ex: airfield lighting system). Also points out that your OS (eg, Linux) is most likely not real-time either -- specialized OSes for RT. Q: Linux 2.6 scheduler allows RT scheduling? A: Kernel effort is nice, but a lot of the other stuff (eg, GUI) is not RT Q: Do they [customers] accept PyUnit tests as part of the dev process? A: They realize they need unit testing -- pyunit makes it very easy -- had good response. Q: Does PyUnit replace traditional tests? A: No, they keep their old tests too -- pyunit is useful for the developers. -------------------------------------------------------------------------- REFERENCES: {as documents / sites are referenced add them below} -------------------------------------------------------------------------- QUOTES: -------------------------------------------------------------------------- CONTRIBUTORS: {add your name, e-mail address and URL below} Ian Jones, ianjones@umich.edu -------------------------------------------------------------------------- E-MAIL BOUNCEBACK: {add your e-mail address separated by commas } -------------------------------------------------------------------------- NOTES ON / KEY TO THIS TEMPLATE: A headline (like a field in a database) will be CAPITALISED This differentiates from the text that follows A variable that you can change will be surrounded by _underscores_ Spaces in variables are also replaced with under_scores This allows people to select the whole variable with a simple double-click A tool-tip is lower case and surrounded by {curly brackets / parentheses} These supply helpful contextual information. -------------------------------------------------------------------------- Copyright shared between all the participants unless otherwise stated...