E015.D.011-FXLS90230/Drivers/BSP/agreement.h

159 lines
4.3 KiB
C
Raw Normal View History

2025-04-24 11:37:10 +08:00
#ifndef __AGREEMENT_H
#define __AGREEMENT_H
#include "main.h"
#include "system.h"
#define WRITE_CMD 0x01
#define READ_CMD 0x00
#define READ_DATA_0x34 0x34//0x5A //<2F><>ȡʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>
//#define READ_STORE_DATA_0x5F 0x5F //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#define HEAD_AB 0xAB
#define ADDRESS_NB 0x0A //drill colar azi gam
#define ADDRESS_NBF 0x34
#define ADDRESS_NBT 0x40 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
#define ADDRESS_HOST 0x34//0x20
#define ADDRESS_SEC 0x40//0x01
#define ADDRESS_FAR 0x41//0x01
#define ADDRESS_BROAD 0x00
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EAB6A8>
#define ERROR_CMD 0xE1
#define NO_DATA 0xE2
#define SPEED_ERROR 0xE3
#define EEPROM_ERROR 0xE4
#define EEPROM_EMPTY 0xE5
#define RTC_ERROR 0xE6
//#define RECEIVE_BUFFSIZE 0x150
#define RECEIVE_BUFFSIZE 0x260
// typedef enum flagdata
// {
// _FALSE=0x00,
// _TRUE=0x01,
// }FLAG;
typedef union wokrtimetype
{
uint8_t wtime[4];
uint32_t iwtime;
}WTIME;
//ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
typedef volatile struct worktime
{
WTIME SUM_TIME; //<2F>ܹ<EFBFBD><DCB9><EFBFBD>ʱ<EFBFBD><CAB1>
WTIME USER_TIME; //ά<>޺<EFBFBD><DEBA>ۼ<EFBFBD>ʹ<EFBFBD>ù<EFBFBD><C3B9><EFBFBD>ʱ<EFBFBD><CAB1>
}WORK_TIME;
typedef enum uartstarus
{
Receive_head=0x00,
Receive_addr=0x01, //<2F><><EFBFBD><EFBFBD>Ŀ<EFBFBD>ĵ<EFBFBD>ַ״̬
ReceiveSend_addr=0x02, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ״̬
Receive_data=0x03,
Receive_crc=0x04,
Receive_busy=0x05,
}UART_STATUS;
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct tagSYSRTC
{
unsigned char Year;
unsigned char Month;
unsigned char Day;
unsigned char Hour;
unsigned char Min;
unsigned char Sec;
};
typedef struct queuedata
{
uint8_t front;
uint8_t rear;
FLAG Fullflag;
//uint8_t maxlen;//=receive_bufsize
uint8_t Buf[RECEIVE_BUFFSIZE];
}QUEUE_DATA;
typedef struct sysdata
{
UART_STATUS UartStaus;
uint8_t ReceiveBuf[RECEIVE_BUFFSIZE];
int ReceiveOffset;
FLAG ReceiveOKFlag;
uint8_t Recdata;
uint32_t FlashReadedNum;
uint32_t FlashReadedPageNum;
//<2F><><EFBFBD>ݴ洢<DDB4><E6B4A2>ַ
uint32_t uiDataHeadAddress; //<2F><><EFBFBD>ݴ洢<DDB4>׵<EFBFBD>ַ
uint32_t uiDataEndAddress; //<2F><><EFBFBD>ݴ洢β<E6B4A2><CEB2>ַ
uint32_t uiDataEndAddressStoreAdd; //β<><CEB2>ַ<EFBFBD><EFBFBD><E6B4A2>ַ
uint32_t uiDataCurrentAddress; //<2F><><EFBFBD>ݴ洢<DDB4><E6B4A2>ǰλ<C7B0>õ<EFBFBD>ַ
uint32_t uiDataNum; //<2F><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>
uint16_t uiChangeAddressTimes; //<2F><EFBFBD><E6B4A2>ַ<EFBFBD><D6B7><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
uint8_t uiLoopAddressTimes; //<2F><EFBFBD><E6B4A2>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t uiDataOverFlowFlag; //<2F><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
uint16_t Test_Page_Addr;
uint8_t ucMeasureData[20]; //<2F><EFBFBD><E6B4A2><EFBFBD><EFBFBD>
uint16_t ucRepDataLen; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
uint16_t Store_Interval_times; //<2F><>ַ<EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
int Get_Single_SPeed; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
uint8_t Allow_GetData_Flag; //<2F><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ģʽ
uint8_t Allow_GetData_Count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2><C9BC><EFBFBD><EFBFBD><EFBFBD>
struct tagSYSRTC uiCurrentTime; //ʱ<><CAB1><EFBFBD><EFBFBD>¼
uint8_t IsTwoHostAddrFlag; //<2F><><EFBFBD><EFBFBD>ַ<EFBFBD>Ƿ<EFBFBD>Ϊ˫<CEAA><CBAB>ַ<EFBFBD><D6B7>־
uint8_t IsOneSlaveAddrFlag; //<2F>ӵ<EFBFBD>ַ<EFBFBD>Ƿ<EFBFBD>Ϊ˫<CEAA><CBAB>ַ<EFBFBD><D6B7>־
uint8_t Get_Wob_frequency; //<2F><>ѹ<EFBFBD><D1B9>Ť<EFBFBD>زɼ<D8B2>Ƶ<EFBFBD><C6B5>
uint16_t Get_Vibration_Frequency; //<2F><><EFBFBD><EFBFBD>ת<EFBFBD>ٲɼ<D9B2>Ƶ<EFBFBD><C6B5>
uint32_t WaitStartWork_Time; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
uint32_t Work_Continued_Time; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>
uint16_t Get_PressData_Times; //ѹ<><D1B9><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
uint8_t Time_Detemine_Flag; //ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
uint8_t ucSendChkCrc; //<2F><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>У<EFBFBD><D0A3>λ
uint8_t ucAutoCalibFlag; //<2F>Զ<EFBFBD>У׼<D0A3><D7BC>־
uint16_t ucGet_Data_Count; //<2F><><EFBFBD>ݲɼ<DDB2><C9BC><EFBFBD><EFBFBD><EFBFBD>
int Round_Data; //ת<><D7AA>ֵ
}SYS_DATA;
extern SYS_DATA s_Data;
extern SYS_DATA USBs_Data; //USB<53><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern QUEUE_DATA RecQueue;
extern WORK_TIME WorkTime;
extern void SwapAddr_DataLen(uint8_t data_len);
extern void IsOneAddr_DataLen(uint8_t data_len);
extern void RecQueueInit(void);
extern void SysDataInit(void);
extern void WorkTimeInit(void);
extern void Float2char(unsigned char *Data,float Fldata);
extern uint8_t PushQueue(QUEUE_DATA *que_data,uint8_t data);
extern uint8_t PopQueue(QUEUE_DATA *que_data,uint8_t* data);
extern void AgreementService(void);
extern uint32_t Reduce_Time(unsigned char *Time);
extern unsigned char unReduce_Time(unsigned char *Time,uint32_t ReduceTime);
extern void BCD_To_HEX(unsigned char *BCD,unsigned char *HEX,unsigned char Len);
extern void HEX_To_BCD(unsigned char *HEX,unsigned char *BCD,unsigned char Len);
extern unsigned char ReloadCurrentTime(unsigned char *TimeBuffer);
extern void Send_Slave(unsigned char Data);
#endif