Skip to main content

json messaging (1/2)

Currently, the messages that the clients and the server are sending each other is just a mess.

They're pretty much just string dumps of whatever textual information I can add to describe what the message should do. 

I pretty much have on_message methods regexing to find certain words for key commands... 

Hence I had a big TODO that reminded me that I have to give structure to these messages, and JSON seems like the best fit for that.

Since the ETA of the servo is set on Monday, I should get this "house cleaning" done for now.

Didn't have much time after I got home today, so I just started reading on JSON for Python. 

Nothing complicated: json.dumps and json.loads. Done? 

As expected, the hard (well, not hard, but requires effor?) part will be organizing the current message structure and not implementation.

Comments

Popular posts from this blog

GPIO testing

Since the environment of the client-server-target is currently quite functional in the messaging standpoint, I decided to try connecting a simple LED light to the Raspberry Pi to see if it could "open" a door when the command is received. Installed the RPi.GPIO module (a Python module that gives the user command of the GPIO--General-Purpose Input/Output--ports in the Raspberry Pi) and connected the LED light to a GPIO pin. When the target received a request message, it would signal the GPIO pin to drive a current to the LED to light it up for 2 seconds. in main: if __name__ == "__main__":   GPIO.setmode(GPIO.BCM)   GPIO.setup(17, GPIO.OUT) in the on_message's request-received logic:      GPIO.output(17, True)      time.sleep(2)      GPIO.output(17, False) The video is a weak visual result. You can a click when the LED lights up; that was the sound of the key being pressed that sent the request message. Now, tim...

setting up pwm

There's always an obstacle.. I implemented the pwm module as described in the link in the previous post, but oddly enough, it didn't work. The error I received: AttributeError: 'module' object has no attribute 'PWM' After some time scratching my head, I came to the realization that somehow my python was running an older version of the RPi.GPIO library, as PWM control was a pretty recent addition to the library.  And indeed it was.  Not really sure what's happening in detail, but it seems that there are two different... entities? that manage libraries for Python. One is through the usual "apt-get" command and the other is "pip." It appears that Python looks at "pip" first, and it currently linked RPi.GPIO to a really old version of the library.  Uninstalling that older version ("pip uninstall RPi.GPIO") and using the version I obtained through apt-get ("apt-get install python-rpi.gpio...

pwm..

I just realized that the RPi.GPIO library (for programming the Raspberry Pi's input/output) already has PWM control, giving me a much more efficient control of duty cycles... At least the previous exercise ("duty cycle testing") refreshed me on it. PWM control on RPi.GPIO: http://code.google.com/p/raspberry-gpio-python/wiki/PWM