I’m sorry if this is a duplicate? I sent this earlier, but I don’t see it in
the archives?
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