123

Dependencies:   mbed

Fork of LG by igor Apu

DeviceUserProtocolDecoder.h

Committer:
Diletant
Date:
2016-07-03
Revision:
177:672ef279c8e0
Parent:
167:bedc0a9d559a

File content as of revision 177:672ef279c8e0:

#ifndef __DEVICE_USER_PROTOCOL_DECODER_H__
#define __DEVICE_USER_PROTOCOL_DECODER_H__

//Requests decoding state
typedef struct _DeviceUserProtocolDecoder {
  uint8_t error;    //Decode error encountered
  uint8_t canceled; //Decode canceled flag: continue decoding when clear (new data arrived)
  uint8_t count;    //Decoded bytes count
  uint8_t last;     //Last attempt decoded bytes count: do not send Decode8() debug message if (last > count)
  uint8_t address;  //Decoded request address
  uint8_t version;  //Decoded protocol version (currently only 0 version exist)
  uint16_t code;    //Decoded command code
  uint16_t position;//Current decoder position in input buffer
  uint16_t CRC;     //Current/final CRC of decoded packet
  uint32_t param0;  //Function call parameter 0
  uint32_t param1;  //Function call parameter 1
  uint32_t param2;  //Function call parameter 2
  uint32_t param3;  //Function call parameter 3
} DeviceUserProtocolDecoder;

void InitUserProtocolDecoderDefaultSettings(void);
void InitUserProtocolDecoderState(void);
void DeviceStartUserProtocolDecoder(void);

//Host communication main functions
void userDecodeRequests(void);       //Decode requests from receive buffer
void userDecodePin(void);            //Decode hardware pin request
void userEncodeResponse(void); //Encode response to transmit buffer

//Decoder elementary functions
uint8_t Decode8(void);
uint16_t Decode16(void);
uint32_t Decode32(void);

//Decoder common functions
void DecodeStart(void);
void DecodeEnd(void);
void DecodeCancel(void);
void DecodeFail(void);

void DecodeAddress(void);
void DecodeCode(void);
void DecodeExtentionCode(void);
void DecodeCRC(void);

//Decoder factory functions
void DecodeFactory(void);

//Decoder data output functions
void DecodeDeviceMode(void);
void DecodeDelta(void);

//Decoder maintenance functions
void DecodeMaintenanceMode(void);

void DecodeMBasic(void);
void DoMaintenanceClear(void);
void DoMaintenanceMirror(void);
void DoMaintenanceStart(void);
void DoMaintenanceStop(void);

void DecodeBITMode(void);
void DecodeMStymul(void);
void DecodeMReset(void);
void DecodeMCtlR(void);
void DecodeMCtlM(void);
void DecodeMADCR(void);
void DecodeMTmpW(void);
void DecodeMTmpR(void);
void DecodeMe5rW(void);
void DecodeMCntR(void);
void DecodeMFlgR(void);
void DecodeMVibW(void);
void DecodeMGphW(void);

void DecodeMRate(void);
void DecodeMRate2(void);
void DecodeMRate3(void);

void DecodeMParamR(void);
void DecodeMParamW(void);
void DecodeMe5raW(void);

#endif  /* __DEVICE_USER_PROTOCOL_DECODER_H__ */