TMC32_QJB/App/communication.h

97 lines
2.6 KiB
C
Raw Normal View History

2026-04-30 08:23:12 +00:00
/**
******************************************************************************
* @file communication.c
* @author TMC Scan Team
* @version V1.0.0
* @date 09/06/2019
* @brief
******************************************************************************
*
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
* TIME. AS A RESULT, TMC SHALL NOT BE HELD LIABLE FOR ANY
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*
* <h2><center>&copy; COPYRIGHT 2016 TMC</center></h2>
******************************************************************************
**/
#ifndef __COMMUNICATION_H__
#define __COMMUNICATION_H__
#include "global.h"
/** @defgroup HIDPOS communication protocal
* @{
*/
#define HIDPOS_BUFLEN 64 //HIDPOS<4F><53><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD>
#define NOTAILLEN (HIDPOS_BUFLEN - 8) //<2F>Զ<EFBFBD><D4B6>ϴ<EFBFBD>ɨ<EFBFBD><C9A8>Э<EFBFBD><D0AD>ȥ<EFBFBD><C8A5>8<EFBFBD><38><EFBFBD>ֽڵij<DAB5><C4B3><EFBFBD>
#define HIDPOS_RECEIVE_DATA_HEAD 0x04
#define HIDPOS_RECEIVE_DATA_TAIL_CONTINUE 0x01
#define HIDPOS_RECEIVE_DATA_TAIL_FINISH 0x00
#define HIDPOS_RECEIBE_DATA_MAX_LEN 60
#define HIDPOS_SEND_DATA_HEAD 0x02
#define HIDPOS_SEND_DATA_MAX_LEN 0x38
/**
* @}
*/
//hidpos <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD>ʽ
typedef struct
{
uint8_t reportID;
uint8_t dataLen;
uint8_t dataBlock[60];
uint8_t reservedData;
uint8_t endPackage;
} HIDPOSReciveData;
/** @defgroup receive data
* @{
*/
#define MAX_SEND_DATA_LEN 2100
#define MAX_RECEIVE_DATA_LEN 512
#define MAX_RECEIVE_AVAILABLE_DATA_LEN 240
/**
* @}
*/
/** @defgroup receive data flag
* @{
*/
#define RECEIVE_FAIL 0x01
#define RECIEVE_OVERMAXLEN 0x02
#define HIDPOS_RECIEVE_REPORTID_ERROR 0x03
#define HIDPOS_RECIEVE_DATALEN_ERROR 0x04
#define HIDPOS_RECIEVE_PACKAGEEND_ERROR 0x05
#define HIDPOS_RECIEVE_CONTINUE 0x06
#define RECIEVE_FINISH 0x07
/**
* @}
*/
extern uint8_t gOutputBuf[MAX_SEND_DATA_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BUF<55><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>2070<37>ֽ<EFBFBD>
extern uint8_t gReceiveDataFinish;
extern uint8_t gReceiveBuf[]; //USB<53><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BUF<55><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>256<35>ֽ<EFBFBD>
extern uint16_t gReceiveLen; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void ClearOutputLen(void) ;
void SetOutputData(uint8_t *pSrcData, uint16_t uLen);
void ReportData(int barType);
uint8_t VSPRecieveData(void);
void HIDPOSDataSend(uint8_t *pSrc, uint16_t uLen);
uint8_t HIDPOSRecieveData(void);
void CommunicationCmdHandle(BarData *comdata);
uint8_t USBRespondCmd(uint8_t status, BarData *pCode);
uint8_t RecieveData(BarData *pRecievedata);
#endif /*__COMMUNICATION_H__*/