def encode(self): ''' Encodes response pdu :returns: The encoded packet message ''' result = pack_bitstring(self.bits) packet = struct.pack(">B", len(result)) + result return packet
def execute(self, *args): ''' Execute the diagnostic request on the given device :returns: The initialized response message ''' #if _MCB.isListenOnly(): register = pack_bitstring(_MCB.getDiagnosticRegister()) return ReturnDiagnosticRegisterResponse(register)
def encode(self): ''' Encodes the status bits to an event message :returns: The encoded event message ''' bits = [False] * 3 bits += [self.overrun, self.listen, self.broadcast, True] packet = pack_bitstring(bits) return packet
def encode(self): ''' Encodes write coils request :returns: The byte encoded message ''' count = len(self.values) self.byte_count = (count + 7) / 8 packet = struct.pack('>HHB', self.address, count, self.byte_count) packet += pack_bitstring(self.values) return packet
def encode(self): ''' Encodes the status bits to an event message :returns: The encoded event message ''' bits = [self.read, self.slave_abort, self.slave_busy, self.slave_nak, self.write_timeout, self.listen] bits += [True, False] packet = pack_bitstring(bits) return packet
def add_bits(self, values): ''' Adds a collection of bits to be encoded If these are less than a multiple of eight, they will be left padded with 0 bits to make it so. :param value: The value to add to the buffer ''' value = pack_bitstring(values) self._payload.append(value)
def encode(self): ''' Encodes the status bits to an event message :returns: The encoded event message ''' bits = [ self.read, self.slave_abort, self.slave_busy, self.slave_nak, self.write_timeout, self.listen ] bits += [True, False] packet = pack_bitstring(bits) return packet
def fromCoils(klass, coils, endian=Endian.Little): ''' Initialize a payload decoder with the result of reading a collection of coils from a modbus device. The coils are treated as a list of bit(boolean) values. :param coils: The coil results to initialize with :param endian: The endianess of the payload :returns: An initialized PayloadDecoder ''' if isinstance(coils, list): payload = pack_bitstring(coils) return klass(payload, endian) raise ParameterException('Invalid collection of coils supplied')