Folks, I’m writing an client using twisted, and I’m basing it off the Poetry client from http://krondo.com/wp-content/uploads/2009/08/twisted-intro.html. I am porting a previous pyserial based client, so I’m running into new territory here.
And it’s working fine, there are two “issues" that I am running into. class WT_Protocol(Protocol): tag = '' def to_bytes(self, seq): """convert a sequence to a bytes type""" # # from pyserial.util if isinstance(seq, bytes): return seq elif isinstance(seq, bytearray): return bytes(seq) elif isinstance(seq, memoryview): return seq.tobytes() else: b = bytearray() for item in seq: b.append(item) # this one handles int and str for our emulation and ints for Python 3.x return bytes(b) def connectionMade(self): print "Reseting the network" reset = self.to_bytes(packets.network_reset() ) self.transport.write ( reset ) self.transport.write ( self.to_bytes(packets.Set_SiteCode(NodeID=255, SC1=0, SC2=0, SC3=0) )) self.transport.write ( self.to_bytes(packets.Set_Gain_Packet(NodeID=255, Gain=1) )) # high gain self.transport.write ( self.to_bytes(packets.Set_Protocol_No_Nulls (NetworkID=0, ReceiverID=0, NodeID=1) )) # high gain time.sleep (.5) Now the client works right now, but I’m concerned that I can’t figure out how to immediately read for a reply packet from the server. For example, when I send the Set_SiteCode packet, I may receive a reply. But how would that occur in the Twisted framework? In my testing the dataReceived function is not being called, so I can’t trap it there, plus I’m not sure how I would figure that logic. Can anyone suggest a method to do this? The second question, as far as I can tell, isn’t very solvable. I’d like to add a “Press Q to quit” type logic to the code. But I don’t see a way to do this easily in twisted? (platform unspecific, but it’s running Mac OS X / Unix right now). - Ben
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python