def createSetValuesPDU(header, parameter = [], references = []): if not isinstance(header, Header): raise TypeError('Parameter "header" must be of type "Header".') length = 2 pdu = [] if parameter: parameterAPDU = createSetParametersAPDU(parameter) length += len(parameterAPDU) if references: referencesAPDU = createSetReferencesAPDU(references) length += len(referencesAPDU) pdu.extend([header.startDelimiter, length, header.destAddr, header.sourceAddr]) if parameter: pdu.extend(parameterAPDU) if references: pdu.extend(referencesAPDU) crc = calcuteCrc(pdu) pdu.extend(bytes(crc)) arr = array.array('B', pdu) # TODO: arr.tostring() for I/O! return arr
def createGetValuesPDU(header, protocolData = [], measurements = [], parameter = [], references = [], strings = []): if not isinstance(header, Header): raise TypeError('Parameter "header" must be of type "Header".') length = 2 pdu = [] if protocolData: protocolAPDU = createGetProtocolDataAPDU(protocolData) length += len(protocolAPDU) if measurements: measurementAPDU = createGetMeasuredDataAPDU(measurements) length += len(measurementAPDU) if parameter: parameterAPDU = createGetParametersAPDU(parameter) length += len(parameterAPDU) if references: referencesAPDU = createGetReferencesAPDU(references) length += len(referencesAPDU) if strings: stringsAPDU = createGetStringsAPDU(strings) length += len(stringsAPDU ) pdu.extend([header.startDelimiter, length, header.destAddr, header.sourceAddr]) if protocolData: pdu.extend(protocolAPDU) if parameter: pdu.extend(parameterAPDU) if measurements: pdu.extend(measurementAPDU) if references: pdu.extend(referencesAPDU) if strings: pdu.extend(stringsAPDU) crc = calcuteCrc(pdu) pdu.extend(bytes(crc)) arr = array.array('B', pdu) # TODO: arr.tostring() for I/O! return arr
def createSetCommandsPDU(header, commands): if not isinstance(header, Header): raise TypeError('Parameter "header" must be of type "Header".') length = 2 pdu = [] commandsAPDU = createSetCommandsAPDU(commands) length += len(commandsAPDU) pdu.extend([header.startDelimiter, length, header.destAddr, header.sourceAddr]) pdu.extend(commandsAPDU) crc = calcuteCrc(pdu) pdu.extend(bytes(crc)) arr = array.array('B', pdu) # TODO: arr.tostring() for I/O! return arr
def createGetInfoPDU(header, measurements = [], parameter = [], references = []): if not isinstance(header, Header): raise TypeError('Parameter "header" must be of type "Header".') length = 2 pdu = [] if measurements: measurementsAPDU = createGetInfoAPDU(defs.ADPUClass.MEASURERED_DATA, measurements) length += len(measurementsAPDU) if parameter: parameterAPDU = createGetInfoAPDU(defs.ADPUClass.CONFIGURATION_PARAMETERS, parameter) length += len(parameterAPDU) if references: referencesAPDU = createGetInfoAPDU(defs.ADPUClass.REFERENCE_VALUES, references) length += len(referencesAPDU) pdu.extend([header.startDelimiter, length, header.destAddr, header.sourceAddr]) if measurements: pdu.extend(measurementsAPDU) if parameter: pdu.extend(parameterAPDU) if references: pdu.extend(referencesAPDU) crc = calcuteCrc(pdu) pdu.extend(bytes(crc)) arr = array.array('B', pdu) # TODO: arr.tostring() for I/O! return arr