159 lines
4.3 KiB
C
159 lines
4.3 KiB
C
#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 //读取实时数据
|
|
|
|
//#define READ_STORE_DATA_0x5F 0x5F //扇区地址存储间隔时间
|
|
|
|
#define HEAD_AB 0xAB
|
|
#define ADDRESS_NB 0x0A //drill colar azi gam
|
|
#define ADDRESS_NBF 0x34
|
|
#define ADDRESS_NBT 0x40 //主机地址
|
|
#define ADDRESS_HOST 0x34//0x20
|
|
#define ADDRESS_SEC 0x40//0x01
|
|
#define ADDRESS_FAR 0x41//0x01
|
|
#define ADDRESS_BROAD 0x00
|
|
|
|
|
|
//错误指令宏定义
|
|
#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;
|
|
|
|
//系统工作时间
|
|
typedef volatile struct worktime
|
|
{
|
|
WTIME SUM_TIME; //总工作时间
|
|
WTIME USER_TIME; //维修后累计使用工作时间
|
|
}WORK_TIME;
|
|
|
|
typedef enum uartstarus
|
|
{
|
|
Receive_head=0x00,
|
|
Receive_addr=0x01, //接收目的地址状态
|
|
ReceiveSend_addr=0x02, //接收主地址状态
|
|
Receive_data=0x03,
|
|
Receive_crc=0x04,
|
|
Receive_busy=0x05,
|
|
}UART_STATUS;
|
|
|
|
//获得时间数据
|
|
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;
|
|
|
|
//数据存储地址
|
|
uint32_t uiDataHeadAddress; //数据存储首地址
|
|
uint32_t uiDataEndAddress; //数据存储尾地址
|
|
uint32_t uiDataEndAddressStoreAdd; //尾地址存储地址
|
|
uint32_t uiDataCurrentAddress; //数据存储当前位置地址
|
|
uint32_t uiDataNum; //数据存储条数
|
|
uint16_t uiChangeAddressTimes; //存储地址更改次数
|
|
uint8_t uiLoopAddressTimes; //存储地址变更次数
|
|
uint8_t uiDataOverFlowFlag; //存储器溢出标志
|
|
|
|
uint16_t Test_Page_Addr;
|
|
|
|
uint8_t ucMeasureData[20]; //存储数据
|
|
uint16_t ucRepDataLen; //待发送数据长度
|
|
|
|
uint16_t Store_Interval_times; //地址存储间隔时间
|
|
int Get_Single_SPeed; //单次钻速值
|
|
uint8_t Allow_GetData_Flag; //允许采集模式
|
|
uint8_t Allow_GetData_Count; //允许数据采集计数
|
|
struct tagSYSRTC uiCurrentTime; //时间记录
|
|
uint8_t IsTwoHostAddrFlag; //主地址是否为双地址标志
|
|
uint8_t IsOneSlaveAddrFlag; //从地址是否为双地址标志
|
|
|
|
uint8_t Get_Wob_frequency; //钻压、扭矩采集频率
|
|
uint16_t Get_Vibration_Frequency; //振动转速采集频率
|
|
|
|
|
|
uint32_t WaitStartWork_Time; //开机后等待开始工作时间
|
|
uint32_t Work_Continued_Time; //开机后持续工作时间 用于累加
|
|
|
|
uint16_t Get_PressData_Times; //压力采集持续时间
|
|
uint8_t Time_Detemine_Flag; //时间段判断允许标志
|
|
uint8_t ucSendChkCrc; //并口传输校验位
|
|
uint8_t ucAutoCalibFlag; //自动校准标志
|
|
uint16_t ucGet_Data_Count; //数据采集计数
|
|
int Round_Data; //转速值
|
|
}SYS_DATA;
|
|
|
|
extern SYS_DATA s_Data;
|
|
extern SYS_DATA USBs_Data; //USB接收数据
|
|
|
|
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
|
|
|