Open GoogleCodeExporter opened 9 years ago
This issue's type should be changed to enhancement.
The DigiMesh python script is written by Matteo Lucchesi and it's location is
here:
http://matteo.luccalug.it/2011/11/python-xbee/
However, I am still unable to get it to work... :(
It keeps failing:
Traceback (most recent call last):
File "C:\Projects\RonakWaspmote\program\python\readCOM.py", line 20, in <module>
print(xbee.wait_read_frame())
File "C:\Python32\lib\site-packages\xbee\base.py", line 389, in wait_read_frame
frame = self._wait_for_frame()
File "C:\Python32\lib\site-packages\xbee\base.py", line 119, in _wait_for_frame
if self.serial.inWaiting() == 0:
File "C:\Python32\lib\site-packages\serial\serialwin32.py", line 205, in inWaiting
raise SerialException('call to ClearCommError failed')
serial.serialutil.SerialException: call to ClearCommError failed
Original comment by ronthecon
on 3 Feb 2012 at 8:14
Matteo wrote to me about the implementation posted above, but I haven't gotten
around to including it in the library yet.
Ronthecon, that error is being generated by the pyserial serial port code, not
anything within python-xbee. You may want to check the serial connection
between your computer and the xbee module?
Original comment by pmalms...@gmail.com
on 4 Feb 2012 at 11:33
The serial connection has been working fine. Because the following code works.
import serial
from xbee import DigiMesh
ser = serial.Serial()
ser.baudrate = 38400
# read COM4, base station
ser.port = 3
ser.open()
print("end")
for x in range(0,1):
print(ser.readline())
but when I try the DigiMesh code, it fails returning the same exception.
KeyError: 'Unrecognized response packet with id byte 144'
144 is \x90 and the zigbee.py has a spot in its array for that value. So I'm
not sure why it's giving me that error... Is there a bug with the
zigbee/digimesh package? How do I go about fixing it?
Original comment by ronthecon
on 30 Mar 2012 at 6:39
Can you post the code you are using with the DigiMesh module?
Original comment by pmalms...@gmail.com
on 30 Mar 2012 at 7:03
Sure. Sorry I took so long to upload this. This is a side project while I'm
studying at school.
Code is attached as readCOM.py to this comment.
Original comment by ronthecon
on 20 Apr 2012 at 5:23
Attachments:
It works if I use ser.readline() but fails if I use xbee.wait_read_frame(). Why
is that?
Original comment by ronthecon
on 20 Apr 2012 at 5:24
Here's the problem. You are using Python 3.X, and the Digimesh file does not
properly prefix entries in the api_responses dictionary with b for the bytes
type.
This is okay in Python 2.X because the bytes type simply aliased to str.
However, in Python 3.X, the bytes type is a brand new type, and therefore
b"\x90" and "\x90" are not equivalent.
Try adding "b" in front of all byte strings in the DigiMesh file (take a look
at zigbee.py or ieee.py for an example of this). That will tell Python 3.X to
use the right type.
python-xbee is one of my side projects in school as well. I don't play with
XBees that much now, but I like keeping the project going when I have time.
Original comment by pmalms...@gmail.com
on 20 Apr 2012 at 8:25
Perfect, works fine now!
Original comment by ronthecon
on 14 Jun 2012 at 8:12
Great, I'm glad to hear it.
I will get around to including the DigiMesh module in the source code at some
point, I hope.
Original comment by pmalms...@gmail.com
on 14 Jun 2012 at 8:26
Wonderful. I look forward to it.
Original comment by ronthecon
on 19 Jun 2012 at 6:43
Attaching the digimesh.py file from Matteo's blog here until I include it in
the library.
Original comment by pmalms...@gmail.com
on 20 Sep 2013 at 11:00
Attachments:
[deleted comment]
Hi Guys, i'm facing a similar issue
i'm using Cubietruck (ARM based) with the Ubuntu server image and Python 2.7.6
i've set up an arduino to send a TXRequest with msg "hi" to the coordinator
which is plugged via FTDI into the Cubietruck running python.
so basically i would like to see this arduino TXRequest coming in
Traceback (most recent call last):
File "./script_20141026.py", line 18, in <module>
response = xbee.wait_read_frame()
File "/usr/local/lib/python2.7/dist-packages/xbee/base.py", line 400, in wait_read_frame
return self._split_response(frame.data)
File "/usr/local/lib/python2.7/dist-packages/xbee/base.py", line 231, in _split_response
"Unrecognized response packet with id byte {0}".format(data[0]))
KeyError: 'Unrecognized response packet with id byte \x91'
in /usr/local/lib/python2.7/dist-packages/xbee/zigbee.py i notice that the 'b'
is prefixed ... b"\x91"
any ideas on this one?
i will try later-on on a X86 machine to see if we have the same issue. but the
purpose would be to run it on the embedded machine.
thx a Bunch!
Herman
Original comment by herman.v...@gmail.com
on 26 Oct 2014 at 1:04
Hey Guys,
it doesnt seem to be better on a x86 machine (ubuntu 14.04lts - python 2.7*)
-- python crashes as soon as a TXRequest data frame is recieved
what i forgot to mention was that i'm using a set of Xbee pro Serie 2 (both in
api mode)
i'm not really a python expert, so i dont know which library is being used, i
assume the Zigbee library from the xbee module.
thx in advance!
Herman
Original comment by herman.v...@gmail.com
on 27 Oct 2014 at 11:09
Hi!
We are using Digimesh.py with python 2.7 and in serial configured a timeout.
What happen is that serial port do not timeout and we are not receiving any
data...
This is my configuration:
ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1)
xbee = DigiMesh(ser,escaped = True)
And this is my code for receiving frames:
while time.time() < t_recibir:
try:
while True:
print("Receiving frames")
packet = xbee.wait_read_frame()
print("Frame received")
print packet
But on terminal what I see is:
Receiving frames
And nothing happen. Can anyone advice me what I am doing wrong?
Best regards!
Original comment by rov...@gmail.com
on 6 Mar 2015 at 9:34
Original issue reported on code.google.com by
ronthecon
on 3 Feb 2012 at 7:32Attachments: