Hi guys, I'm currently re-implementing some of my libs in my SirBot project. One aspect is the communication between a PIC and a PC, over serial link. During this dialog, several "things" can be exchanged:
* a request can be sent to a PIC, expecting a response * a response can be sent by the PIC to the PC, after having received a request * a message can be sent from the PIC to the PC, on its own, without any request from the PC The lib in the PIC is able to digest a request (for now, just read a char), send a request or a response. While sending them, the PIC can build a frame with Start Of Frame and End Of Frame chars (SOF/EOF), a type, the length, the content. On the PC, the whole is parsed to extract back responses and messages, through the serial com. It's implemented using Twisted, a asynchronous lib using deferreds (no threads). That my last work: reimplement using Twisted (http://twistedmatrix.com/trac/), which provides an amazingly powerful framework when it comes to deal with network issues and event-driven app. Once the response/messages are received, events can be triggered, and all data (depending how low/high you are: chars, requests, responses, messages, events, errors) can be sent via different gateways, through a socket (there's also a ssh connection to access the server and take control of the robot, hum, the PIC by sending request to it, via a python CLI). For now, I'm building a Flash GUI using Flex (http://www.adobe.com/fr/products/flex/), so every piece of data is sent through the gateway and collected by the Flash app (Action Script XMLSocket). This way, you can monitor, in real time, what your PIC is doing, building graphs, etc... Just open your browser, and observe what's going on... Currently, first benchmarks shows the whole app (PIC + twisted server + flash/flex app) is able to handle ~1000 events / secs (ping/ping between PIC/PC), with not so much processing though), still quite surprising when consedering the number involved layers :) Why bother you with that ? Well, I was thinking about sharing my PIC's lib to jallib (even if most of the value isn't in the PIC, but on the PC side). The problem is I don't know if it's worth it, how to do this, what to share, how users would use it, etc... This is probably more a matter of applications, than libraries. I've found also interesting things with the Arduino project, like a Firmata lib (http://www.arduino.cc/playground/Interfacing/Firmata): it's supposed to be a standard protocol to talk to a PIC, handling things like moving servo, etc... I didn't want to implement this protocol, because it doesn't deal with frames' length, types, etc... My questions are: * do you know any standard protocol/way of talking to a PIC <=> PC ? * how do you deal with that ? (do you deal with that ?) * do you know Firmata and what's your opinion ? * do you think it's valuable to add such a lib (PIC side) to jallib ? As an extra: a screenshot showing part of my extra minimalist and prototypic Flex GUI, with some requests, responses and messages. It's connected to the twisted server via AS XMLSocket, collect and log the data. Cheers, Seb -- Sébastien LELONG http://www.sirloon.net http://sirbot.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jallib" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/jallib?hl=en -~----------~----~----~----~------~----~------~--~---
<<inline: flash_gateway.png>>
