Skip to main content

json messaging (2/2)

Took a good 2 hours to change all the messages into JSON format and make it work.

But it is done. All is JSON.

Using it like a map, currently with three key-value pairs:

"id" : for entering a session ID of another session if needed. Currently used for the web client to receive a acknowledge response to confirm that the target received the message (mainly for testing purposes).

"type" : probably the most functional data going through all this. Current types are
STARTUP_TYPE - for when the target sends its initial message, the server uses this to mark which session is the target.
REQUEST_TYPE - for when the web client sends a request to the target. Server uses this to send request to target.
ACK_TYPE - for when the target finishes carrying out the requests and sends an acknowledgement of the completion of the request to the server. Server uses this to send confirmation to the web client 
MISC_MSG_TYPE - for anything else.
DEBUG_TYPE - currently for the pinging that the Raspberry Pi is sending to the server. 

"message" : currently holds messages that are visible in the web client's screen. As the screen would most likely be gone in the end, this and MISC_MSG_TYPE might disappear. 

Anyways, code got cleaner once every message was converted to JSON (no more regex blobs), but it's still messy in some parts.

Comments

Popular posts from this blog

nodejs migration

Having been playing around with NodeJS recently,  I (naturally?) started re-writing some of the OpenSesame code using Node last night. I think I've only worked on it around 2 hours so far, but I've already set up a basic client interface (a socket.io chat tutorial rip) with a server that the Raspberry Pi can connect to and receive requests to open the door.  This is probably due to socket.io's socket management (socket.io is the WebSocket module for Node); for my first implementation, I had to manually write up a structure that managed sockets, but that is pretty much handled by socket.io. Also, the servo control logic is pretty much recycled (and the Raspberry Pi code is still Python), and I do remember spending some good time figuring that out.  Cool neverthelss. I'll probably keep both versions around.

quick recollection on setting things up

If I can swear that the password is correct, then it's possible that I'm getting the ID wrong. Hadn't logged into the web server in a couple of months and was unable to SSH into it. After an hour or so, I ended up deleting the instance and recreating a clean instance (read: erasing everything). I then realized I'd been putting the wrong ID.   apt-get install sudo apt-get install Anyways, some links I visited when setting things up (pretty much a dump of whatever I copy-pasted to notes) : Raspberry Pi http://www.makeuseof.com/tag/optimize-the-power-of-your-raspberry-pi-with-raspbian/ Logging http://docs.python.org/2/howto/logging-cookbook.html Tornado - Python webserver that supports Websocket http://stackoverflow.com/questions/2924991/what-popular-webservers-have-support-for-html5-websocket http://lowpowerlab.com/blog/2013/01/17/raspberrypi-websockets-with-python-tornado/ http://stackoverflow.com/questions/11695375/tornado-identify-tra...

how the fingers work

the fingers are moved using wires and tension. each finger is looped through with a wire/string/line in a top-bottom fashion. when the top wire is loosened/bottom wire is tightened, the finger curls in its joints, resulting in a "bent finger".  you don't have precise control of each joint movement, but it is simple enough to be controlled by a single actuator (in this case a servo).  here is me just using my own hands as an actuator: here it is hooked up to as servo and controlled by a potentiometer: the movement is not smooth because 1) it's controlled by a potentiometer that I am controlling, as seen in the background, and I was unable to move it all the way with one smooth finer motion. 2) the tension in the line was not entirely tight. I need to learn how to tie these well. now I have a get a bunch of servos.  much credit and thanks to Inmoov once again.