/***************************************************************************** * FileName: m2ua_mes.c * * Contents: Encoder & Decoder Implementation File * * Note: This file is generated with PDL 0.1 and should not be * manually changed! * * Author: Jan Berger * * Copyright: Case Labs, Ltd ****************************************************************************/ #include "m2ua_mes.h" /***************************************************************************** * External prototypes ****************************************************************************/ void m2ua_OnError(int iError, char *szText); void m2ua_OnTrace(int level, char *szText); /***************************************************************************** * Function: m2ua_Decode_int8 * * Description: Decode a single 8 bit variable. Filter out leading bits and * rotate the bits correctly. * * Parameters: b ptr to the byte holding info * m ptr to the int8 * start start bit 0-7 * stop stop bit 0-7 * * Return Value: Error code 0 (m2ua_SUCCESS) if no error ****************************************************************************/ int m2ua_Decode_int8(char *b, int8 *m, int start int stop) { int8 temp; int rot = 7-stop; int8 mask[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe}; if(start >0) temp = *b & mask[start]; else temp = *b; if(stop < 7) temp = temp >> rot; *m = temp; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Encode_int8 * * Description: Encode a field into single 8 bit octet * * Parameters: b ptr to the byte holding info * m ptr to the int8 * start start bit 0-7 * stop stop bit 0-7 * * Return Value: Error code 0 (m2ua_SUCCESS) if no error ****************************************************************************/ int m2ua_Encode_int8(char *b, int8 *m, int start int stop) { return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_int16 * * Description: Decode a 16 bit variable. Filter out leading bits and * rotate the bits correctly. * * Parameters: b ptr to the byte holding info * m ptr to the int8 * start start bit 0-7 * stop stop bit 0-7 * * Return Value: Error code 0 (m2ua_SUCCESS) if no error ****************************************************************************/ int m2ua_Decode_int16(char *b, int16 *m, int start int stop) { return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Encode_int16 * * Description: Encode a field into 8 bit variable. * * Parameters: b ptr to the byte holding info * m ptr to the int8 * start start bit 0-7 * stop stop bit 0-7 * * Return Value: Error code 0 (m2ua_SUCCESS) if no error ****************************************************************************/ int m2ua_Encode_int16(char *b, int16 *m, int start int stop) { return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_int32 * * Description: Decode a single 8 bit variable. Filter out leading bits and * rotate the bits correctly. * * Parameters: b ptr to the byte holding info * m ptr to the int8 * start start bit 0-7 * stop stop bit 0-7 * * Return Value: Error code 0 (m2ua_SUCCESS) if no error ****************************************************************************/ int m2ua_Decode_int32(char *b, int32 *m, int start int stop) { return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Encode_int32 * * Description: Encode a firld into a 32 bit variable. * * Parameters: b ptr to the byte holding info * m ptr to the int8 * start start bit 0-7 * stop stop bit 0-7 * * Return Value: Error code 0 (m2ua_SUCCESS) if no error ****************************************************************************/ int m2ua_Encode_int32(char *b, int32 *m, int start int stop) { return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Encode_CommonHeader * * Description: Encoding CommonHeader struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to CommonHeader struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_CommonHeader(char *b, m2ua_CommonHeader *m, int *size) { int iPSize; int octet=0; if(m2ua_Encode_int8(&b[octet], &m->version,0, 7) != m2ua_SUCCESS) return m2ua_ERROR; octet+=1; if(m2ua_Encode_int8(&b[octet], &m->spare,0, 7) != m2ua_SUCCESS) return m2ua_ERROR; octet+=1; if(m2ua_Encode_int8(&b[octet], &m->messageClass,0, 7) != m2ua_SUCCESS) return m2ua_ERROR; octet+=1; if(m2ua_Encode_int8(&b[octet], &m->messageType,0, 7) != m2ua_SUCCESS) return m2ua_ERROR; octet+=1; if(m2ua_Encode_int32(&b[octet], &m->messageLength,0, 31) != m2ua_SUCCESS) return m2ua_ERROR; octet+=4; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_CommonHeader * * Description: Decoding m2ua message into CommonHeader struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to CommonHeader struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_CommonHeader(char *b, m2ua_CommonHeader *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int8(&b[octet], &m->version,0, 7); octet+=1; m2ua_Decode_int8(&b[octet], &m->spare,0, 7); octet+=1; m2ua_Decode_int8(&b[octet], &m->messageClass,0, 7); octet+=1; m2ua_Decode_int8(&b[octet], &m->messageType,0, 7); octet+=1; m2ua_Decode_int32(&b[octet], &m->messageLength,0, 31); octet+=4; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_Parameter * * Description: Encoding Parameter struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to Parameter struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_Parameter(char *b, m2ua_Parameter *m, int *size) { int iPSize; int octet=0; if(m2ua_Encode_int16(&b[octet], &m->tag,0, 15) != m2ua_SUCCESS) return m2ua_ERROR; octet+=2; if(m2ua_Encode_int16(&b[octet], &m->length,0, 15) != m2ua_SUCCESS) return m2ua_ERROR; octet+=2; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_Parameter * * Description: Decoding m2ua message into Parameter struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to Parameter struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_Parameter(char *b, m2ua_Parameter *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int16(&b[octet], &m->tag,0, 15); octet+=2; m2ua_Decode_int16(&b[octet], &m->length,0, 15); octet+=2; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_InterfaceIdentifierInteger * * Description: Encoding InterfaceIdentifierInteger struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to InterfaceIdentifierInteger struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_InterfaceIdentifierInteger(char *b, m2ua_InterfaceIdentifierInteger *m, int *size) { int iPSize; int octet=0; if(m->header.tag != 0x1) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in tag!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_Parameter(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_int32(&b[octet], &m->interfaceIdentifier,0, 31) != m2ua_SUCCESS) return m2ua_ERROR; octet+=4; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_InterfaceIdentifierInteger * * Description: Decoding m2ua message into InterfaceIdentifierInteger struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to InterfaceIdentifierInteger struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_InterfaceIdentifierInteger(char *b, m2ua_InterfaceIdentifierInteger *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int32(&b[octet], &m->interfaceIdentifier,0, 31); octet+=4; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_InterfaceIdentifierText * * Description: Encoding InterfaceIdentifierText struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to InterfaceIdentifierText struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_InterfaceIdentifierText(char *b, m2ua_InterfaceIdentifierText *m, int *size) { int iPSize; int octet=0; if(m->header.tag != 0x3) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in tag!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_Parameter(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_int32(&b[octet], &m->interfaceIdentifier,0, 31) != m2ua_SUCCESS) return m2ua_ERROR; octet+=4; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_InterfaceIdentifierText * * Description: Decoding m2ua message into InterfaceIdentifierText struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to InterfaceIdentifierText struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_InterfaceIdentifierText(char *b, m2ua_InterfaceIdentifierText *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int32(&b[octet], &m->interfaceIdentifier,0, 31); octet+=4; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_CorrelationID * * Description: Encoding CorrelationID struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to CorrelationID struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_CorrelationID(char *b, m2ua_CorrelationID *m, int *size) { int iPSize; int octet=0; if(m->header.tag != 0x13) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in tag!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_Parameter(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_int32(&b[octet], &m->correlationID,0, 31) != m2ua_SUCCESS) return m2ua_ERROR; octet+=4; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_CorrelationID * * Description: Decoding m2ua message into CorrelationID struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to CorrelationID struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_CorrelationID(char *b, m2ua_CorrelationID *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int32(&b[octet], &m->correlationID,0, 31); octet+=4; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_ProtocolData * * Description: Encoding ProtocolData struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to ProtocolData struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_ProtocolData(char *b, m2ua_ProtocolData *m, int *size) { int iPSize; int octet=0; if(m->header.tag != 0x300) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in tag!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_Parameter(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_int8(&b[octet], &m->protocolData[0],0, 7) != m2ua_SUCCESS) return m2ua_ERROR; octet+=1; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_ProtocolData * * Description: Decoding m2ua message into ProtocolData struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to ProtocolData struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_ProtocolData(char *b, m2ua_ProtocolData *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int8(&b[octet], &m->protocolData,0, 7); octet+=1; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_ProtocolDataTTC * * Description: Encoding ProtocolDataTTC struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to ProtocolDataTTC struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_ProtocolDataTTC(char *b, m2ua_ProtocolDataTTC *m, int *size) { int iPSize; int octet=0; if(m->header.tag != 0x301) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in tag!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_Parameter(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_int8(&b[octet], &m->protocolDataTTC[0],0, 7) != m2ua_SUCCESS) return m2ua_ERROR; octet+=1; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_ProtocolDataTTC * * Description: Decoding m2ua message into ProtocolDataTTC struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to ProtocolDataTTC struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_ProtocolDataTTC(char *b, m2ua_ProtocolDataTTC *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int8(&b[octet], &m->protocolDataTTC,0, 7); octet+=1; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_State * * Description: Encoding State struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to State struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_State(char *b, m2ua_State *m, int *size) { int iPSize; int octet=0; if(m->header.tag != 0x302) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in tag!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_Parameter(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_int32(&b[octet], &m->state,0, 31) != m2ua_SUCCESS) return m2ua_ERROR; octet+=4; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_State * * Description: Decoding m2ua message into State struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to State struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_State(char *b, m2ua_State *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int32(&b[octet], &m->state,0, 31); octet+=4; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_Event * * Description: Encoding Event struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to Event struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_Event(char *b, m2ua_Event *m, int *size) { int iPSize; int octet=0; if(m->header.tag != 0x304) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in tag!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_Parameter(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_int32(&b[octet], &m->event,0, 31) != m2ua_SUCCESS) return m2ua_ERROR; octet+=4; if(m2ua_Encode_int32(&b[octet], &m->congestionStatus,0, 31) != m2ua_SUCCESS) return m2ua_ERROR; octet+=4; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_Event * * Description: Decoding m2ua message into Event struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to Event struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_Event(char *b, m2ua_Event *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int32(&b[octet], &m->event,0, 31); octet+=4; m2ua_Decode_int32(&b[octet], &m->congestionStatus,0, 31); octet+=4; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_DiscardStatus * * Description: Encoding DiscardStatus struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to DiscardStatus struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_DiscardStatus(char *b, m2ua_DiscardStatus *m, int *size) { int iPSize; int octet=0; if(m->header.tag != 0x305) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in tag!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_Parameter(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_int32(&b[octet], &m->discardStatus,0, 31) != m2ua_SUCCESS) return m2ua_ERROR; octet+=4; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_DiscardStatus * * Description: Decoding m2ua message into DiscardStatus struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to DiscardStatus struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_DiscardStatus(char *b, m2ua_DiscardStatus *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int32(&b[octet], &m->discardStatus,0, 31); octet+=4; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_Action * * Description: Encoding Action struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to Action struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_Action(char *b, m2ua_Action *m, int *size) { int iPSize; int octet=0; if(m->header.tag != 0x306) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in tag!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_Parameter(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_int32(&b[octet], &m->action,0, 31) != m2ua_SUCCESS) return m2ua_ERROR; octet+=4; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_Action * * Description: Decoding m2ua message into Action struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to Action struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_Action(char *b, m2ua_Action *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int32(&b[octet], &m->action,0, 31); octet+=4; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_SequenceNumber * * Description: Encoding SequenceNumber struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to SequenceNumber struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_SequenceNumber(char *b, m2ua_SequenceNumber *m, int *size) { int iPSize; int octet=0; if(m->header.tag != 0x307) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in tag!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_Parameter(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_int32(&b[octet], &m->sequenceNumber,0, 31) != m2ua_SUCCESS) return m2ua_ERROR; octet+=4; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_SequenceNumber * * Description: Decoding m2ua message into SequenceNumber struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to SequenceNumber struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_SequenceNumber(char *b, m2ua_SequenceNumber *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int32(&b[octet], &m->sequenceNumber,0, 31); octet+=4; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_Result * * Description: Encoding Result struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to Result struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_Result(char *b, m2ua_Result *m, int *size) { int iPSize; int octet=0; if(m->header.tag != 0x308) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in tag!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_Parameter(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_int32(&b[octet], &m->result,0, 31) != m2ua_SUCCESS) return m2ua_ERROR; octet+=4; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_Result * * Description: Decoding m2ua message into Result struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to Result struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_Result(char *b, m2ua_Result *m, int *iSize) { int iPSize; int octet=0; m2ua_Decode_int32(&b[octet], &m->result,0, 31); octet+=4; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_MAUPHeader * * Description: Encoding MAUPHeader struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to MAUPHeader struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_MAUPHeader(char *b, m2ua_MAUPHeader *m, int *size) { int iPSize; int octet=0; if(m2ua_Encode_CommonHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m->iiType == 0) { if(m2ua_Encode_InterfaceIdentifierInteger(&b[octet], &m->interfaceIdentifierInteger,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; } else if(m->iiType == 1) { if(m2ua_Encode_InterfaceIdentifierText(&b[octet], &m->interfaceIdentifierText,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; } else { m2ua_OnError(m2ua_ERRORENCODER,"Invalid value in MAUPHeader.iiType"); return m2ua_ERROR; } *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_MAUPHeader * * Description: Decoding m2ua message into MAUPHeader struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to MAUPHeader struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_MAUPHeader(char *b, m2ua_MAUPHeader *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_InterfaceIdentifierInteger(&b[octet], &m->interfaceIdentifierInteger, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; if(m2ua_Decode_InterfaceIdentifierText(&b[octet], &m->interfaceIdentifierText, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_Data * * Description: Encoding Data struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to Data struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_Data(char *b, m2ua_Data *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_DATA) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m->PDUType == 0) { if(m2ua_Encode_ProtocolData(&b[octet], &m->protocolData,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; } else if(m->PDUType == 1) { if(m2ua_Encode_ProtocolDataTTC(&b[octet], &m->protocolDataTTC,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; } else { m2ua_OnError(m2ua_ERRORENCODER,"Invalid value in Data."); return m2ua_ERROR; } if(m->corrID ==1) { if(m2ua_Encode_CorrelationID(&b[octet], &m->correlationID,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; { *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_Data * * Description: Decoding m2ua message into Data struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to Data struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_Data(char *b, m2ua_Data *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_ProtocolData(&b[octet], &m->protocolData, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; if(m2ua_Decode_ProtocolDataTTC(&b[octet], &m->protocolDataTTC, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; if(m2ua_Decode_CorrelationID(&b[octet], &m->correlationID, &iPSize) != m2ua_SUCCESS) { m->corrID =0; } else { m->corrID =1; octet+=iPSize; } *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_DataAck * * Description: Encoding DataAck struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to DataAck struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_DataAck(char *b, m2ua_DataAck *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_DATAACK) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_CorrelationID(&b[octet], &m->correlationID,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_DataAck * * Description: Decoding m2ua message into DataAck struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to DataAck struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_DataAck(char *b, m2ua_DataAck *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_CorrelationID(&b[octet], &m->correlationID, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_EstablishReq * * Description: Encoding EstablishReq struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to EstablishReq struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_EstablishReq(char *b, m2ua_EstablishReq *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_ESTABLISHREQ) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_Dummy(&b[octet], &m->dummy,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_EstablishReq * * Description: Decoding m2ua message into EstablishReq struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to EstablishReq struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_EstablishReq(char *b, m2ua_EstablishReq *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_Dummy(&b[octet], &m->dummy, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_EstablishConf * * Description: Encoding EstablishConf struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to EstablishConf struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_EstablishConf(char *b, m2ua_EstablishConf *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_ESTABLISHCONF) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_Dummy(&b[octet], &m->dummy,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_EstablishConf * * Description: Decoding m2ua message into EstablishConf struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to EstablishConf struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_EstablishConf(char *b, m2ua_EstablishConf *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_Dummy(&b[octet], &m->dummy, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_ReleaseReq * * Description: Encoding ReleaseReq struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to ReleaseReq struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_ReleaseReq(char *b, m2ua_ReleaseReq *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_RELEASEREQ) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_Dummy(&b[octet], &m->dummy,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_ReleaseReq * * Description: Decoding m2ua message into ReleaseReq struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to ReleaseReq struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_ReleaseReq(char *b, m2ua_ReleaseReq *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_Dummy(&b[octet], &m->dummy, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_ReleaseInd * * Description: Encoding ReleaseInd struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to ReleaseInd struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_ReleaseInd(char *b, m2ua_ReleaseInd *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_RELEASEIND) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_Dummy(&b[octet], &m->dummy,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_ReleaseInd * * Description: Decoding m2ua message into ReleaseInd struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to ReleaseInd struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_ReleaseInd(char *b, m2ua_ReleaseInd *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_Dummy(&b[octet], &m->dummy, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_ReleaseConf * * Description: Encoding ReleaseConf struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to ReleaseConf struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_ReleaseConf(char *b, m2ua_ReleaseConf *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_RELEASECONF) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_Dummy(&b[octet], &m->dummy,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_ReleaseConf * * Description: Decoding m2ua message into ReleaseConf struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to ReleaseConf struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_ReleaseConf(char *b, m2ua_ReleaseConf *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_Dummy(&b[octet], &m->dummy, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_StateReq * * Description: Encoding StateReq struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to StateReq struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_StateReq(char *b, m2ua_StateReq *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_STATEREQ) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_State(&b[octet], &m->state,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_StateReq * * Description: Decoding m2ua message into StateReq struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to StateReq struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_StateReq(char *b, m2ua_StateReq *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_State(&b[octet], &m->state, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_StateConf * * Description: Encoding StateConf struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to StateConf struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_StateConf(char *b, m2ua_StateConf *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_STATECONF) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_State(&b[octet], &m->state,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_StateConf * * Description: Decoding m2ua message into StateConf struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to StateConf struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_StateConf(char *b, m2ua_StateConf *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_State(&b[octet], &m->state, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_Stateind * * Description: Encoding Stateind struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to Stateind struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_Stateind(char *b, m2ua_Stateind *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_STATEIND) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_Event(&b[octet], &m->event,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_Stateind * * Description: Decoding m2ua message into Stateind struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to Stateind struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_Stateind(char *b, m2ua_Stateind *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_Event(&b[octet], &m->event, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_RetrievalReq * * Description: Encoding RetrievalReq struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to RetrievalReq struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_RetrievalReq(char *b, m2ua_RetrievalReq *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_RETRIEVALREQ) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_Action(&b[octet], &m->action,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_SequenceNumber(&b[octet], &m->sequenceNumber,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_RetrievalReq * * Description: Decoding m2ua message into RetrievalReq struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to RetrievalReq struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_RetrievalReq(char *b, m2ua_RetrievalReq *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_Action(&b[octet], &m->action, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; if(m2ua_Decode_SequenceNumber(&b[octet], &m->sequenceNumber, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_RetrievalConf * * Description: Encoding RetrievalConf struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to RetrievalConf struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_RetrievalConf(char *b, m2ua_RetrievalConf *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_RETRIEVALCONF) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_Action(&b[octet], &m->action,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_Result(&b[octet], &m->result,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m2ua_Encode_SequenceNumber(&b[octet], &m->sequenceNumber,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_RetrievalConf * * Description: Decoding m2ua message into RetrievalConf struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to RetrievalConf struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_RetrievalConf(char *b, m2ua_RetrievalConf *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_Action(&b[octet], &m->action, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; if(m2ua_Decode_Result(&b[octet], &m->result, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; if(m2ua_Decode_SequenceNumber(&b[octet], &m->sequenceNumber, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_RetrievalInd * * Description: Encoding RetrievalInd struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to RetrievalInd struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_RetrievalInd(char *b, m2ua_RetrievalInd *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_RETRIEVALIND) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m->PDUType == 0) { if(m2ua_Encode_ProtocolData(&b[octet], &m->protocolData,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; } else if(m->PDUType == 1) { if(m2ua_Encode_ProtocolDataTTC(&b[octet], &m->protocolDataTTC,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; } else { m2ua_OnError(m2ua_ERRORENCODER,"Invalid value in RetrievalInd.PDUType"); return m2ua_ERROR; } *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_RetrievalInd * * Description: Decoding m2ua message into RetrievalInd struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to RetrievalInd struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_RetrievalInd(char *b, m2ua_RetrievalInd *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_ProtocolData(&b[octet], &m->protocolData, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; if(m2ua_Decode_ProtocolDataTTC(&b[octet], &m->protocolDataTTC, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; } /***************************************************************************** * Function: m2ua_Encode_RetrievalCompleteInd * * Description: Encoding RetrievalCompleteInd struct primitive into m2ua message. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to RetrievalCompleteInd struct primary. * size [OUT] output size of buffer. ****************************************************************************/ int m2ua_Encode_RetrievalCompleteInd(char *b, m2ua_RetrievalCompleteInd *m, int *size) { int iPSize; int octet=0; if(m->header.header.messageClass != M2UA_MC_MAUP) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageClass!"); return m2ua_ERRORENCODER; } if(m->header.header.messageType != M2UA_MT_RETRIEVALCOMPLETEIND) { m2ua_OnError(m2ua_ERRORENCODER,"Invalid Value in messageType!"); return m2ua_ERRORENCODER; } if(m2ua_Encode_MAUPHeader(b, &m->header, &iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; if(m->PDUType == 0) { if(m2ua_Encode_ProtocolData(&b[octet], &m->protocolData,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; } else if(m->PDUType == 1) { if(m2ua_Encode_ProtocolDataTTC(&b[octet], &m->protocolDataTTC,iPSize) != m2ua_SUCCESS) return m2ua_ERROR; octet+=iPSize; } else { m2ua_OnError(m2ua_ERRORENCODER,"Invalid value in RetrievalCompleteInd.PDUType"); return m2ua_ERROR; } *size = octet; return m2ua_SUCCESS; } /***************************************************************************** * Function: m2ua_Decode_RetrievalCompleteInd * * Description: Decoding m2ua message into RetrievalCompleteInd struct primitive. * * Parameters: b [OUT] ptr to packed output buffer. * m [IN] ptr to RetrievalCompleteInd struct primary. * iSize [OUT] size of decoded message ****************************************************************************/ int m2ua_Decode_RetrievalCompleteInd(char *b, m2ua_RetrievalCompleteInd *m, int *iSize) { int iPSize; int octet=0; if(m2ua_Decode_ProtocolData(&b[octet], &m->protocolData, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; if(m2ua_Decode_ProtocolDataTTC(&b[octet], &m->protocolDataTTC, &iPSize) != m2ua_SUCCESS) return m2ua_ERRORDECODE; octet+=iPSize; *iSize = octet; return 0; }