X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2FGoodFETEM260.py;h=ef2bf0c6fecbb25d9188a3c85c2feb6b9abc15b6;hp=205f0b3c65e355d7e06ec59791f0e9edcdc75a8c;hb=f7fdc48f01ada713d5034763a2f3395fe2a7c51b;hpb=830f48834c5210ad38866861238ade21b7a9a2e8 diff --git a/client/GoodFETEM260.py b/client/GoodFETEM260.py index 205f0b3..ef2bf0c 100644 --- a/client/GoodFETEM260.py +++ b/client/GoodFETEM260.py @@ -16,7 +16,7 @@ # The delay is mandatory. -import sys, time, string, cStringIO, struct, glob, serial, os; +import sys, time, string, cStringIO, struct, glob, os; from GoodFETSPI import GoodFETSPI; @@ -64,8 +64,8 @@ class GoodFETEM260(GoodFETSPI): if ord(data[0])!=0xFE: print "EZSP error: 0x%02x" % ord(data[0]); if ord(data[4])==0x58: - print "EZSP Invalid Command"; - return None; + print "EZSP Invalid Command because 0x%02x" % ord(data[5]); + return data; if frame[0]!=ord(data[4]): print "EZSP warning: Command 0x%02x returned type 0x%02x." % ( frame[0],ord(data[4])); @@ -99,6 +99,7 @@ class GoodFETEM260(GoodFETSPI): print "Version: %i" % (version); print "Status: %s" % (["dead","alive"][status]); print "" + self.setVersion(); print "Node ID: %04x" % (self.getNodeID()); print "Connected to %2i neighbors." % self.neighborCount(); def EM260spiversion(self): @@ -146,5 +147,17 @@ class GoodFETEM260(GoodFETSPI): data=self.EZSPtrans([0x9A, channel&xFF]); return ord(data[5]); - - + def setVersion(self,version=2): + """Set the requested EZSP protocol version.""" + + data=self.EZSPtrans([0x00, version]); + newversion=ord(data[5]); + if version==newversion: + print "Version set." + print "Protocol %i, stack type %i, Stack Version 0x%02x%02x." % ( + newversion, + ord(data[6]), + ord(data[8]), + ord(data[7])); + else: + self.setVersion(newversion);