def found_terminator(self): # print' Found a terminator' data = self.buffer self.buffer = '' # p = tdc.InquiryProtocol() # Just for arguments sake if self.in_payload: self.in_payload = False # kill the payload flag res = self.packet.process(data) #self.packet.setpayload(data) self.set_terminator(1) # rep = 'tdcproxy_sender:-cc:-%d bytes:-%d' % ( self.channel_counter, self.total) self.server.report('s%d' % self.id ,' %s :- %s' % ( self.packet.protocol, self.packet.command ) ) # Shunt the packets to the reciever if self.receiver.opened: # Don't send if the receivers closed down.. self.receiver.push(self.packet.getpacket()) else: #print 'Sender data:', if data=='\x47': # First byte of magic byte self.set_terminator(tdc.size_header_data -1) # pull in the Sorel header return elif data[0] =='\xAA': # Second byte of magic byte # A possible magic try: # print 'Making a packet' self.packet = tdc.tdcpacket('\x47' + data) #print ' Made a packet' #print self.packet except: tdc.error( 'unrecognized sender Header') self.set_terminator(1) else: # print 'protocol = ',self.packet.protocol, ' ', self.in_payload = True self.set_terminator(self.packet.size_payload) else: self.set_terminator(1)
def sendmessage(self, protocol, command, data='' ): try: prot = protocol.getreq(command) except ( KeyError ): tdc.error('Unknown command %s for protocol %s' %( command , protocol.desc)) return -1 payload = command + data plsize = self.payloadsize(payload) msg = protocol.Magic + protocol.flags + protocol.id + protocol.extra_header_size + plsize + protocol.extra_header_data + protocol.crc + payload # print 'Msg:-',msg # assert(False) # try: #self.s.send(msg) self.push(msg)