#ifndef __MD_Connect_H_ #define __MD_Connect_H_ /*H****************************************************************************** * NAME: MD_Connect.h *********************************************************************************/ typedef struct { u8 ADDRH; u8 ADDRL; u8 Communication; u8 CRYPTH; u8 CRYPTL; } LORA_Set_Type; //硬件定义 #define MD_ConnectUsart1 USART2 #define MD_Connect_DMA DMA1 #define MD_Connect_TX1_DMAAddrSet(x) (DMA1_Stream6->M0AR = x) //设置流量计接收缓存地址 #define MD_Connect_TX1_DMALenSet(x) (DMA1_Stream6->NDTR = x) //设置发送DMA长度 #define MD_Connect_TX1_DMAStart() DMA_Cmd(DMA1_Stream6,ENABLE) //开启发送DMA #define MD_Connect_TX1_DMAStop() DMA_Cmd(DMA1_Stream6,DISABLE) //开启发送DMA #define MD_Connect_RX1_DMALenSet(x) (DMA1_Stream5->NDTR = x) //设置DMA长度 #define MD_Connect_RX1_DMAStart() DMA_Cmd(DMA1_Stream5,ENABLE) //开启DMA #define MD_Connect_RX1_DMAStop() DMA_Cmd(DMA1_Stream5,DISABLE) //开启DMA #define MD_ConnectUsart2 USART4 #define MD_Connect_DMA DMA1 #define MD_Connect_TX2_DMAAddrSet(x) (DMA1_Stream4->M0AR = x) //设置流量计接收缓存地址 #define MD_Connect_TX2_DMALenSet(x) (DMA1_Stream4->NDTR = x) //设置发送DMA长度 #define MD_Connect_TX2_DMAStart() DMA_Cmd(DMA1_Stream4,ENABLE) //开启发送DMA #define MD_Connect_TX2_DMAStop() DMA_Cmd(DMA1_Stream4,DISABLE) //开启发送DMA #define MD_Connect_RX2_DMALenSet(x) (DMA1_Stream2->NDTR = x) //设置DMA长度 #define MD_Connect_RX2_DMAStart() DMA_Cmd(DMA1_Stream2,ENABLE) //开启DMA #define MD_Connect_RX2_DMAStop() DMA_Cmd(DMA1_Stream2,DISABLE) //开启DMA #define MD_ConnectUsart3 USART5 #define MD_Connect_DMA DMA1 #define MD_Connect_TX3_DMAAddrSet(x) (DMA1_Stream7->M0AR = x) //设置流量计接收缓存地址 #define MD_Connect_TX3_DMALenSet(x) (DMA1_Stream7->NDTR = x) //设置发送DMA长度 #define MD_Connect_TX3_DMAStart() DMA_Cmd(DMA1_Stream7,ENABLE) //开启发送DMA #define MD_Connect_TX3_DMAStop() DMA_Cmd(DMA1_Stream7,DISABLE) //开启发送DMA #define MD_Connect_RX3_DMALenSet(x) (DMA1_Stream0->NDTR = x) //设置DMA长度 #define MD_Connect_RX3_DMAStart() DMA_Cmd(DMA1_Stream0,ENABLE) //开启DMA #define MD_Connect_RX3_DMAStop() DMA_Cmd(DMA1_Stream0,DISABLE) //开启DMA #define MD_ConnectUsart4 USART3 #define MD_Connect_DMA DMA1 #define MD_Connect_TX4_DMAAddrSet(x) (DMA1_Stream3->M0AR = x) //设置流量计接收缓存地址 #define MD_Connect_TX4_DMALenSet(x) (DMA1_Stream3->NDTR = x) //设置发送DMA长度 #define MD_Connect_TX4_DMAStart() DMA_Cmd(DMA1_Stream3,ENABLE) //开启发送DMA #define MD_Connect_TX4_DMAStop() DMA_Cmd(DMA1_Stream3,DISABLE) //开启发送DMA #define MD_Connect_RX4_DMALenSet(x) (DMA1_Stream1->NDTR = x) //设置DMA长度 #define MD_Connect_RX4_DMAStart() DMA_Cmd(DMA1_Stream1,ENABLE) //开启DMA #define MD_Connect_RX4_DMAStop() DMA_Cmd(DMA1_Stream1,DISABLE) //开启DMA #define Check_NONE 0 #define Check_EVEN 1 #define Check_ODD 2 /*********************蓝天协议指令集************************/ #define BaudRateSync 115200 #define MDConnect_start 0xF5 //通信头 #define MDConnect_false 0x4E //失败 #define MDConnect_succeed 0x59 //成功 #define MDConnect_GetICCID 0x5A // #define C_MDConnectCmdWriteDensity 0XA2 //写密度 #define C_MDConnectCmdReadDensity 0XA6 //读密度 #define C_MDConnectCmdWritePrice 0XB2 //写单价 #define C_MDConnectResumeFueling 0xB3 //继续 #define C_MDConnectCmdWritePrsetSale 0xB5 //写预置金额 #define C_MDConnectCmdReadPrice 0XB6 //读单价 #define C_MDConnectCmdWritePrsetVolume 0xB9 //写预置体积 #define C_MDConnectPauseFueling 0xBA //暂停 #define C_MDConnectCmdStart 0xC3 //开机 #define C_MDConnectCmdReadTotal 0xC5 //读总累 #define C_MDConnectCmdReadSquadTop 0XC7 //读班累 #define C_MDConnectCmdStop 0xCA //停机 #define C_MDConnectCmdWriteTotal 0xCE //写总累 #define C_MDConnectCmdWriteValveTurnOff 0xD2 //写提前关阀量PulseCoefficient #define C_MDConnectCmdReadState 0xD5 //读取加油机状态 #define C_MDConnectCmdReadValveTurnOff 0xD6 //读提前关阀量 #define C_MDConnectAakIDCardNummber 0xD7 //要ID卡卡号 #define C_MDConnectCmdReadFuelState 0xD9 //读取加油机状态和流量信息 #define C_MDConnectCmdWritePulseCoefficient 0xE1 //写PulseCoefficient #define C_MDConnectCmdReadPulseCoefficient 0xE2 //读 #define C_MDConnectASKControlPower 0xE5 //要控制权 #define C_MDConnectReturnControlPower 0xE7 //还控制权 #define C_MDConnectCmdClrSquadTop 0XEA //清班累 #define C_MDConnectChangePassWord 0xEB //改机械锁密码 #define C_MDConnectCmdReadVersion 0x11 //读版本号 #define C_MDConnectCmdSetBaudRate 0x12 //同步波特率 #define C_MDConnectCmdSendFrame 0x13 //传送帧 /*********************LY JP协议指令集************************/ #define LY_MDConnectCmdPoll 0XA1 //轮询 #define LY_MDConnectCmdReadState 0XA2 //读状态 #define LY_MDConnectCmdChoiceGun 0XA3 //选择枪 #define LY_MDConnectCmdAuthorize 0XA4 //授权 #define LY_MDConnectCmdWritePrice 0XA5 //写单价 #define LY_MDConnectCmdACK0 0XA6 //1030 #define LY_MDConnectCmdACK1 0XA7 //1031 #define LY_MDConnectCmdHandshake 0XA8 //握手 #define LY_MDConnectCmdReadTotal 0XA9 //读总累 #define LY_MDConnectCmdDisauthorize 0XAA //取消授权 /*********************Dart协议指令集************************/ #define DART_MDConnectCmdPoll 0XB1 //轮询 #define DART_MDConnectCmdReadState 0XB2 //读状态 #define DART_MDConnectCmdReStart 0XB3 //重连 #define DART_MDConnectCmdAuthorize 0XB4 //授权 #define DART_MDConnectCmdWritePrice 0XB5 //写单价 #define DART_MDConnectCmdACK 0XB6 //ACK #define DART_MDConnectCmdNAK 0XB7 //NAK #define DART_MDConnectCmdReadVTotal 0XB8 //读油量总累 #define DART_MDConnectCmdReadPTotal 0XB9 //读金额总累 #define DART_MDConnectCmdDisauthorize 0XBA //取消授权 /*********************液位仪协议指令集************************/ #define YWY_MDConnectCmdReadData 0X31 //读数据 #define YWY_MDConnectCmdWriteApacity 0X45 //下载罐容表 /*********************LORA协议指令集************************/ #define LORA_ParameterSet 0XFF //LORA设置 /*********************RFID协议指令集************************/ #define RFID_MDConnectCmdReadData 0XF1 //读单枪数据 #define RFID_MDConnectCmdWriteCardInfo 0XF2 // #define RFID_MDConnectCmdWriteFullingInfo 0XF3 // #define RFID_MDConnectCmdReadVersion 0XF4 // #define RFID_MDConnectCmdWriteBindingInfo 0XF6 //发送绑定的枪号 #define RFID_MDConnectCmdLossACK 0XF7 // #define RFID_MDConnectCmdFindACK 0XF8 // #define RFID_MDConnectCmdROMownload 0X05 // #define RFID_MDConnectCmdAllData 0X06 //读一个键盘所有枪的数据 /*********************英高协议指令集************************/ #define YG_MDConnectCmdWritePrset 0x01 //写预置 #define YG_MDConnectCmdWritePrice 0X02 //写单价 #define YG_MDConnectCmdStop 0x04 //停机 #define YG_MDConnectCmdStart 0x05 //授权 #define YG_MDConnectControlMode 0x06 //设置油机为联机或脱机模式,由命令参数决定 #define YG_MDConnectCmdReadTotal 0x07 //读总累 #define YG_MDConnectCmdRemovePrset 0x08 //取消预置 #define YG_MDConnectCmdSetTime 0x0C //同步时间 #define YG_MDConnectCmdInTestMode 0x0D //同步时间 #define YG_MDConnectCmdOutTestMode 0x0E //同步时间 #define YG_MDConnectCmdReadVersion 0X0F //读取油机的软件版本号 #define YG_MDConnectCmdUnLock 0X10 //解锁 #define YG_MDConnectCmdLock 0X11 //锁定 #define YG_MDConnectCmdReadFuelVolumeState 0x14 //读取加油机状态和流量信息 #define YG_MDConnectCmdReadFuelSaleState 0x15 //回复金额 #define YG_MDConnectCmdReadFuelRecord 0x16 //读取加油记录 #define YG_MDConnectCmdReadFuelRecordNull 0x18 //回复记录空 #define YG_MDConnectCmdReadFuelRecordConfirm 0x17 //加油记录确认 /*********************弘扬协议指令集************************/ #define HY_MDConnectCmdWritePrice 0X80 //写单价 #define HY_MDConnectCmdWritePrsetSale 0x89 //写预置金额 #define HY_MDConnectCmdReadPrice 0X8C //读单价 #define HY_MDConnectCmdWritePrsetVolume 0x8B //写预置体积 #define HY_MDConnectCmdStart 0x08 //开机 #define HY_MDConnectCmdReadTotal 0x8E //读总累 #define HY_MDConnectCmdStop 0x10 //停机 #define HY_MDConnectCmdReadFuelData 0x8F //读取流量信息 #define HY_MDConnectASKControlPower 0x15 //要控制权 #define HY_MDConnectReturnControlPower 0x14 //还控制权 /**********************蓝枫协议指令集******************************/ #define LF_MDConnectCmdWritePrice 0XA1 //写单价 #define LF_MDConnectCmdReadTotal 0xA3 //读总累 #define LF_MDConnectCmdReadState 0xB0 //读取加油机状态 #define LF_MDConnectCmdFuilingStateReply 0xB3 //加油中回复 #define LF_MDConnectCmdIdleStateReply 0xBA //空闲状态回复 #define LF_MDConnectCmdRecordConfirm 0xD2 //交易记录确认 #define LF_MDConnectCmdReadFuelRecord 0xE3 //读取加油记录 #define LF_MDConnectCmdWritePrset 0xE4 //写预置 #define LF_MDConnectASKControlPower 0xE5 //要控制权 #define LF_MDConnectReturnControlPower 0xE6 //还控制权 #define LF_MDConnectCmdStop 0xE7 //停机 /**********************蓝天Plus协议指令集******************************/ #define LTP_DriverCMD 0xA1 //机指令 #define LTP_GunCMD 0XA2 //枪 //机指令列表 #define LTP_DriverCMDReadPassword 0X01 //读密码 #define LTP_DriverCMDWritePassword 0X02 //写密码 #define LTP_DriverCMDReadVerAndMac 0X03 //读版本和唯一码 #define LTP_DriverCMDLock 0X04 //锁机 #define LTP_DriverCMDUnlock 0X05 //解锁 #define LTP_DriverCMDSendFrame 0X06 //在线升级传送帧 //枪参数列表 #define LTP_GunCMDReadState 0x01 //读取加油机状态 #define LTP_GunCMDReadStateAndData 0x02 //读取加油机状态和数据 #define LTP_GunCMDReadTotal 0x03 //读总累 #define LTP_GunCMDWritePrset 0x04 //写预置 #define LTP_GunCMDAuthorize 0x05 //授权 #define LTP_GunCMDStop 0x06 //停机 #define LTP_GunCMDReadEvent 0x07 //读事件 #define LTP_GunCMDReadError 0x08 //读错误 #define LTP_GunCMDReadParameter 0x09 //读参数 #define LTP_GunCMDWriteParameter 0x0A //写参数 #define LTP_GunCMDSuspend 0x0B //暂停 #define LTP_GunCMDContinue 0x0C //继续 //枪参数列表 #define LTP_GunParameterListPrice 0x01 //单价参数 #define LTP_GunParameterListPluse 0x02 //脉冲当量参数 #define LTP_GunParameterListTurnOff 0x03 //提前关阀量参数 #define LTP_GunParameterListMinDisp 0x04 //最小显示值参数 /*********************CNGPLC指令集************************/ #define PLC_MDConnectCmdReadData 0X01 //读数据 #define PLC_MDConnectCmdReadErro 0X02 //读错误 /*********************单价牌指令集************************/ #define Price_MDConnectCmdWriteParameter 0X00 //写参数 #define Price_MDConnectCmdWritePrice 0X01 //写单价 #define Price_MDConnectCmdReadParameter 0X02 //读参数 #define Price_MDConnectCmdReadPrice 0X03 //读单价 #define Price_MDConnectCmdWriteDecimal 0X04 //写单价 #define MD_Connect_RS485_Tx1EN GPIO_ResetBits(GPIOD,GPIO_Pin_7); #define MD_Connect_RS485_Rx1EN GPIO_SetBits(GPIOD,GPIO_Pin_7); #define MD_Connect_RS485_Tx2EN GPIO_ResetBits(GPIOD,GPIO_Pin_3); #define MD_Connect_RS485_Rx2EN GPIO_SetBits(GPIOD,GPIO_Pin_3); #define MD_Connect_RS485_Tx3EN GPIO_ResetBits(GPIOA,GPIO_Pin_8); #define MD_Connect_RS485_Rx3EN GPIO_SetBits(GPIOA,GPIO_Pin_8); #define MD_Connect_RS485_Tx4EN GPIO_ResetBits(GPIOD,GPIO_Pin_10); #define MD_Connect_RS485_Rx4EN GPIO_SetBits(GPIOD,GPIO_Pin_10); #define MD_Connect_LORA_SetMode1 GPIO_SetBits(GPIOG,GPIO_Pin_14); #define MD_Connect_LORA_IdleMode1 GPIO_ResetBits(GPIOG,GPIO_Pin_14); #define MD_Connect_LORA_SetMode2 GPIO_SetBits(GPIOG,GPIO_Pin_13); #define MD_Connect_LORA_IdleMode2 GPIO_ResetBits(GPIOG,GPIO_Pin_13); #define MD_Connect_LORA_SetMode3 GPIO_SetBits(GPIOG,GPIO_Pin_12); #define MD_Connect_LORA_IdleMode3 GPIO_ResetBits(GPIOG,GPIO_Pin_12); #define MD_Connect_LORA_SetMode4 GPIO_SetBits(GPIOG,GPIO_Pin_11); #define MD_Connect_LORA_IdleMode4 GPIO_ResetBits(GPIOG,GPIO_Pin_11); //****************************************************************************** //*-------------- 变量声名 ----------------------------------------------------- //****************************************************************************** typedef enum { LORA_Master, LORA_Slave, }LORA_MODE_Tyye; extern volatile u8 MD_ConnectRX1Task_Flag; //MD_Connect卡通讯DMA接收完成标志标志 extern volatile u8 MD_ConnectRX2Task_Flag; //MD_Connect卡通讯DMA接收完成标志标志 extern volatile u8 MD_ConnectRX3Task_Flag; //MD_Connect卡通讯DMA接收完成标志标志 extern volatile u8 MD_ConnectRX4Task_Flag; //MD_Connect卡通讯DMA接收完成标志标志 //****************************************************************************** //*-------------- 函数声名 ----------------------------------------------------- //****************************************************************************** extern void MD_Connect_USART_Configuration(u8 PortNum,u32 Baud,u16 USART_WordLength,u8 Check); extern void MD_Connect_Init(void); //MD_Connect卡键盘任务初始化 extern void MD_Port_Init(u8 Port); extern void MD_Connect_DMARX1_IRQHandler(void); //MD_Connect卡键盘接收中断服务函数 extern void MD_Connect_DMATX1_IRQHandler(void); //DMA发送中断服务函数 extern void MD_Connect_DMARX2_IRQHandler(void); //MD_Connect卡键盘接收中断服务函数 extern void MD_Connect_DMATX2_IRQHandler(void); //DMA发送中断服务函数 extern void MD_Connect_DMARX3_IRQHandler(void); //MD_Connect卡键盘接收中断服务函数 extern void MD_Connect_DMATX3_IRQHandler(void); //DMA发送中断服务函数 extern void MD_Connect_DMARX4_IRQHandler(void); //MD_Connect卡键盘接收中断服务函数 extern void MD_Connect_DMATX4_IRQHandler(void); //DMA发送中断服务函数 extern u64 MD_Connect_u64ToBCD(u64 Dat); extern u64 MD_Connect_BCDTou64(u64 Dat); extern void MD_ConnectRXTask(void); extern void MD_ConnectTXTask(u8 Port,u8 GunNum,u8 MD_TX_CMD); extern void MD_Port_LORASet(u8 Port,u8 Mode); extern u8 BCC_CheckSum(u8 *buf, u8 len);//BCC校验函数; extern float StrToFloat(u8 *str,u8 len); #endif //#ifndef