Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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