基础版本
This commit is contained in:
+259
@@ -0,0 +1,259 @@
|
||||
/*C*****************************************************************************
|
||||
* NAME: DOBCNT1010.c
|
||||
*-------------------------------------------------------------------------------
|
||||
* RELEASE:
|
||||
* REVISION: 1.0
|
||||
*-------------------------------------------------------------------------------
|
||||
* PURPOSE:
|
||||
* 双枪计数器应用程序
|
||||
*******************************************************************************/
|
||||
|
||||
#include "config.h"
|
||||
volatile TXHData_type TXHData;//定义指针数据
|
||||
const u8 BoxVersion[11]="TXH_V1.4.7";
|
||||
|
||||
cup_t STM32CPU;
|
||||
void TXH_Init(void)
|
||||
{
|
||||
u8 i= 0;
|
||||
Pluse_InPut_Init();
|
||||
Timer_Init();
|
||||
FM_Init();
|
||||
TXHData.ROM_UpData.ROM_UpData_State.Flag.Update_Flag = 0;
|
||||
TXHData.ROM_UpData.ROM_UpData_State.Flag.DisableUpdate = 0;
|
||||
TXHData.ROM_UpData.ROM_UpData_State.Flag.RightRun_Flag = 3;
|
||||
FMItemWrite(CF_ROM_UpData,0);
|
||||
//GPSConnect_Init();
|
||||
AT45DB_Init();
|
||||
DS1307_Init();
|
||||
Log_Init();
|
||||
OLED_Init();
|
||||
Surface_Init();
|
||||
FindSysconfigFile();
|
||||
MD_Connect_Init();
|
||||
Multiplex_Port_Init();
|
||||
POS_Connect_Init();
|
||||
Pluse_Putout_Init();
|
||||
|
||||
TXHData.ROM_UpData.ROM_UpData_State.Flag.Update_Flag = 0;
|
||||
TXHData.ROM_UpData.ROM_UpData_State.Flag.DisableUpdate = 0;
|
||||
TXHData.ROM_UpData.ROM_UpData_State.Flag.RightRun_Flag = 3;
|
||||
//TXHData.ROM_UpData.FrameTop = 0;
|
||||
FMItemWrite(CF_ROM_UpData,0);
|
||||
|
||||
TXHData.OfflineAuthorizeNumberMax = 10000;//允许离线授权次数
|
||||
TXHData.OfflineAuthorize = 1;//允许离线授权
|
||||
// TXHData.PREXDATA_WaitUpNummber = 0;
|
||||
// TXHData.CTIME.Year = 0x22;//年
|
||||
// TXHData.CTIME.Month = 0x01;//月
|
||||
// TXHData.CTIME.Day = 0x11;//日
|
||||
// //TXHData.CTIME.Week = 0x02;//周
|
||||
// TXHData.CTIME.Hour = 0x14;//时
|
||||
// TXHData.CTIME.Min = 0x20;//分
|
||||
// TXHData.CTIME.Sec = 0x00;//秒
|
||||
// DS1307_Write();
|
||||
//PCBEncryption();
|
||||
PCBEncryption_Check();
|
||||
}
|
||||
void TXH_Task(void)
|
||||
{
|
||||
u8 Port = 0,DeviceNumber = 0;
|
||||
//GPSConnectTast();
|
||||
if(TXHData.CTIMEReadTimer.Flag == 1)
|
||||
{
|
||||
TXHData.CTIMEReadTimer.Flag = 0;
|
||||
DS1307_Read();
|
||||
if(TXHData.SurfaceNow <= Surface_Wait)
|
||||
TXHData.DisplayOn = 1;
|
||||
}
|
||||
if(TXHData.ErrState.Flag.e_errPCBCheck == 0)//PCB验证通过
|
||||
{
|
||||
for(Port = 0;Port < TXHData.MD_Port_Num_Top;Port ++)
|
||||
{
|
||||
if(TXHData.MDRestartTimer[Port].Flag == 1)
|
||||
{
|
||||
TXHData.MDRestartTimer[Port].Flag = 0;
|
||||
}
|
||||
if(TXHData.MDRestartTimer[Port].ON_OFF == 0)
|
||||
{
|
||||
if(TXHData.MBCountTimer[Port].Flag == 1 && TXHData.MD_Port_Data[Port].PortData.POSType)
|
||||
{
|
||||
TXHData.MBCountTimer[Port].Flag = 0;
|
||||
{
|
||||
switch(TXHData.MD_Port_Data[Port].PortData.POSType)
|
||||
{
|
||||
case PosBlueSky:
|
||||
case PosHongYang:
|
||||
case PosYGao:
|
||||
case PosLY:
|
||||
case PosJP:
|
||||
case PosYWY:
|
||||
case PosRFID:
|
||||
case PosPrice1_4:
|
||||
case PosPLC:
|
||||
{
|
||||
if(TXHData.MD_Port_Info[Port].LoopGunNextFlag == 1 || (TXHData.MD_Port_Info[Port].GunInfo[TXHData.MD_Port_Info[Port].pGunNow].Handshake == 0x0))
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].pGunNow ++;
|
||||
if(TXHData.MD_Port_Info[Port].pGunReturn)
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].pGunNow = TXHData.MD_Port_Info[Port].pGunReturn;
|
||||
TXHData.MD_Port_Info[Port].pGunReturn = 0;
|
||||
}
|
||||
if(TXHData.MD_Port_Info[Port].GunInfo[TXHData.MD_Port_Info[Port].pGunNow].Handshake != TXHData.MD_Port_Info[Port].Handshake_Top)
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].GunInfo[TXHData.MD_Port_Info[Port].pGunNow].Handshake = 0x0;
|
||||
}
|
||||
}
|
||||
|
||||
if(TXHData.MD_Port_Info[Port].pGunNow >= TXHData.MD_Port_Data[Port].PortData.DeviceNumber)
|
||||
TXHData.MD_Port_Info[Port].pGunNow = 0;
|
||||
MD_ConnectTXTask(Port,TXHData.MD_Port_Info[Port].pGunNow,TXHData.MD_Port_Info[Port].GunInfo[TXHData.MD_Port_Info[Port].pGunNow].MB_CMD_Next);
|
||||
}
|
||||
break;
|
||||
case PosDart:
|
||||
{
|
||||
if(TXHData.MD_Port_Info[Port].LoopGunNextFlag == 1 || (TXHData.MD_Port_Info[Port].GunInfo[TXHData.MD_Port_Info[Port].PumpNow].Handshake == 0x0))
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].PumpNow ++;
|
||||
if(TXHData.MD_Port_Info[Port].pGunReturn)
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].PumpNow = TXHData.MD_Port_Info[Port].pGunReturn;
|
||||
TXHData.MD_Port_Info[Port].pGunReturn = 0;
|
||||
}
|
||||
if(TXHData.MD_Port_Info[Port].GunInfo[TXHData.MD_Port_Info[Port].PumpNow].Handshake != TXHData.MD_Port_Info[Port].Handshake_Top)
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].GunInfo[TXHData.MD_Port_Info[Port].PumpNow].Handshake = 0x0;
|
||||
}
|
||||
}
|
||||
if(TXHData.MD_Port_Info[Port].PumpNow >= TXHData.MD_Port_Info[Port].FatherDeviceTop)
|
||||
TXHData.MD_Port_Info[Port].PumpNow = 0;
|
||||
if(TXHData.MD_Port_Info[Port].pGunCapture)
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].pGunReturn = TXHData.MD_Port_Info[Port].PumpNow;
|
||||
TXHData.MD_Port_Info[Port].PumpNow = TXHData.MD_Port_Info[Port].pGunCapture - 1;
|
||||
TXHData.MD_Port_Info[Port].pGunCapture = 0;
|
||||
}
|
||||
MD_ConnectTXTask(Port,TXHData.MD_Port_Info[Port].PumpNow,TXHData.MD_Port_Info[Port].FatherDevice[TXHData.MD_Port_Info[Port].PumpNow].MB_CMD_Next);
|
||||
}
|
||||
break;
|
||||
case PosSSLan:
|
||||
{
|
||||
if(TXHData.MD_Port_Info[Port].LoopGunNextFlag == 1 || (TXHData.MD_Port_Info[Port].FatherDevice[TXHData.MD_Port_Info[Port].PumpNow].Handshake == 0x0))
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].PumpNow ++;
|
||||
if(TXHData.MD_Port_Info[Port].pGunReturn)
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].PumpNow = TXHData.MD_Port_Info[Port].pGunReturn;
|
||||
TXHData.MD_Port_Info[Port].pGunReturn = 0;
|
||||
}
|
||||
if(TXHData.MD_Port_Info[Port].FatherDevice[TXHData.MD_Port_Info[Port].PumpNow].Handshake != TXHData.MD_Port_Info[Port].Handshake_Top)
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].FatherDevice[TXHData.MD_Port_Info[Port].PumpNow].Handshake = 0x0;
|
||||
}
|
||||
}
|
||||
if(TXHData.MD_Port_Info[Port].PumpNow >= TXHData.MD_Port_Info[Port].FatherDeviceTop)
|
||||
TXHData.MD_Port_Info[Port].PumpNow = 0;
|
||||
if(TXHData.MD_Port_Info[Port].pGunCapture)
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].pGunReturn = TXHData.MD_Port_Info[Port].PumpNow;
|
||||
TXHData.MD_Port_Info[Port].PumpNow = TXHData.MD_Port_Info[Port].pGunCapture - 1;
|
||||
TXHData.MD_Port_Info[Port].pGunCapture = 0;
|
||||
}
|
||||
MD_ConnectTXTask(Port,TXHData.MD_Port_Info[Port].PumpNow,TXHData.MD_Port_Info[Port].FatherDevice[TXHData.MD_Port_Info[Port].PumpNow].MB_CMD_Next);
|
||||
}
|
||||
break;
|
||||
case PosBlueSkyPlus:
|
||||
{
|
||||
if(TXHData.MD_Port_Info[Port].LoopGunNextFlag == 1 || (TXHData.MD_Port_Info[Port].GunInfo[TXHData.MD_Port_Info[Port].PumpNow].Handshake == 0x0))
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].PumpNow ++;
|
||||
if(TXHData.MD_Port_Info[Port].pGunReturn)
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].PumpNow = TXHData.MD_Port_Info[Port].pGunReturn;
|
||||
TXHData.MD_Port_Info[Port].pGunReturn = 0;
|
||||
}
|
||||
if(TXHData.MD_Port_Info[Port].GunInfo[TXHData.MD_Port_Info[Port].PumpNow].Handshake != TXHData.MD_Port_Info[Port].Handshake_Top)
|
||||
{
|
||||
TXHData.MD_Port_Info[Port].GunInfo[TXHData.MD_Port_Info[Port].PumpNow].Handshake = 0x0;
|
||||
}
|
||||
}
|
||||
if(TXHData.MD_Port_Info[Port].PumpNow >= TXHData.MD_Port_Info[Port].FatherDeviceTop)
|
||||
TXHData.MD_Port_Info[Port].PumpNow = 0;
|
||||
// if(TXHData.MD_Port_Info[Port].pGunCapture)
|
||||
// {
|
||||
// TXHData.MD_Port_Info[Port].pGunReturn = TXHData.MD_Port_Info[Port].PumpNow;
|
||||
// TXHData.MD_Port_Info[Port].PumpNow = TXHData.MD_Port_Info[Port].GunInfo[TXHData.MD_Port_Info[Port].pGunCapture].FatherNum;
|
||||
// TXHData.MD_Port_Info[Port].pGunCapture = 0;
|
||||
// }
|
||||
MD_ConnectTXTask(Port,TXHData.MD_Port_Info[Port].PumpNow,TXHData.MD_Port_Info[Port].FatherDevice[TXHData.MD_Port_Info[Port].PumpNow].MB_CMD_Next);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(TXHData.MD_MultiplexTimer.Flag == 1 && TXHData.MD_Multiplex_Port_Data.PortData[TXHData.MD_Multiplex_Port_Info.DevicerTypeNow].POSType)
|
||||
{
|
||||
TXHData.MD_MultiplexTimer.Flag = 0;
|
||||
if(TXHData.MD_Multiplex_Port_Info.DevicerTypeNow < TXHData.MD_Multiplex_Port_Data.DeviceNumber - 1)
|
||||
TXHData.MD_Multiplex_Port_Info.DevicerTypeNow ++;
|
||||
else
|
||||
TXHData.MD_Multiplex_Port_Info.DevicerTypeNow = 0;
|
||||
if(TXHData.MD_Multiplex_Port_Info.MultiplexDevicerTimer[TXHData.MD_Multiplex_Port_Info.DevicerTypeNow].Flag)
|
||||
{
|
||||
TXHData.MD_Multiplex_Port_Info.MultiplexDevicerTimer[TXHData.MD_Multiplex_Port_Info.DevicerTypeNow].Flag = 0;
|
||||
switch(TXHData.MD_Multiplex_Port_Data.PortData[TXHData.MD_Multiplex_Port_Info.DevicerTypeNow].POSType)
|
||||
{
|
||||
case Multiplex_Print:
|
||||
{
|
||||
TXHData.MD_MultiplexTimer.TimerCountMax =(115200/TXHData.MD_Multiplex_Port_Data.PortData[TXHData.MD_Multiplex_Port_Info.DevicerTypeNow].BaudRate) * 66;//根据不同波特率计算等待时间
|
||||
}
|
||||
break;
|
||||
case Multiplex_YWY:
|
||||
{
|
||||
TXHData.MD_MultiplexTimer.TimerCountMax = 1000;
|
||||
}
|
||||
break;
|
||||
case Multiplex_Price:
|
||||
{
|
||||
TXHData.MD_MultiplexTimer.TimerCountMax = 100;
|
||||
}
|
||||
break;
|
||||
case Multiplex_GPS:
|
||||
{
|
||||
TXHData.MD_MultiplexTimer.TimerCountMax = 1000;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Multiplex_PortTXTask(TXHData.MD_Multiplex_Port_Info.DevicerTypeNow,TXHData.MD_Multiplex_Port_Info.MB_CMD_Next[TXHData.MD_Multiplex_Port_Info.DevicerTypeNow]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(TXHData.POS_Info.ConnectType == POS_Connect_Typ_Station)
|
||||
{
|
||||
if(TXHData.POS_RS232Timer.Flag == 1)
|
||||
{
|
||||
TXHData.POS_RS232Timer.Flag = 0;
|
||||
POS_ConnectTXTask(TXHData.POS_Info.ConnectType,TXHData.POS_Info.Link_Flag,TXHData.POS_Info.POS_CMD_Next);
|
||||
}
|
||||
}
|
||||
else if(TXHData.HeartbeatTimer.Flag == 1)
|
||||
{
|
||||
TXHData.HeartbeatTimer.Flag = 0;
|
||||
POS_ConnectTXTask(TXHData.POS_Info.ConnectType,TXHData.POS_Info.Link_Flag,TXHData.POS_Info.POS_CMD_Next);
|
||||
}
|
||||
if(TXHData.PowerDown.State == 0)//断电就不处理数据了,防止在断电期间操作存储数据
|
||||
{
|
||||
MD_ConnectRXTask();
|
||||
Multiplex_PortRXTask();
|
||||
if(TXHData.POS_Info.POS_ConnectRXTask_Flag)
|
||||
{
|
||||
TXHData.POS_Info.POS_ConnectRXTask_Flag = 0;
|
||||
POS_ConnectRXTask();
|
||||
}
|
||||
}
|
||||
SurfaceTast();
|
||||
}
|
||||
+729
@@ -0,0 +1,729 @@
|
||||
#ifndef __TXH_H__
|
||||
#define __TXH_H__
|
||||
|
||||
#define QUEUE_SIZE 10
|
||||
|
||||
typedef struct spu_info
|
||||
{
|
||||
union
|
||||
{
|
||||
u8 byte[12];
|
||||
u32 id[3];
|
||||
}v;
|
||||
}cup_t;
|
||||
typedef union
|
||||
{
|
||||
u16 State;
|
||||
struct
|
||||
{
|
||||
u8 e_errFlashParameter : 1; //FLASH断线
|
||||
u8 e_errFramParameter : 1; //铁电参数错误
|
||||
u8 e_errPCBCheck : 1; //电路板验证
|
||||
u8 e_errMessageEnd : 1;
|
||||
}Flag;
|
||||
}ErrState_TypeDef;
|
||||
__packed typedef struct
|
||||
{
|
||||
u8 Sec;
|
||||
u8 Min;
|
||||
u8 Hour;
|
||||
u8 Day;
|
||||
u8 Month;
|
||||
u8 Year;
|
||||
}CTIME_type;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
Message_Priority_1 = 1,
|
||||
Message_Priority_2,
|
||||
Message_Priority_3 ,
|
||||
}Message_PriorityItem;
|
||||
|
||||
typedef struct Message {
|
||||
u8 Priority; // 消息优先级,1-3之间的整数
|
||||
u8 Content; // 消息内容
|
||||
}Message_Type;
|
||||
|
||||
typedef struct MessageQueue {
|
||||
u8 Front; // 队头指针
|
||||
u8 Rear; // 队尾指针
|
||||
Message_Type Messages[QUEUE_SIZE]; // 消息队列数组
|
||||
}MessageQueue_Type;
|
||||
__packed typedef union
|
||||
{
|
||||
u8 Buff[16];
|
||||
__packed struct
|
||||
{
|
||||
float OH;
|
||||
float OV;
|
||||
float WH;
|
||||
float TH;
|
||||
}Data;
|
||||
}TankData_Type;
|
||||
__packed typedef union
|
||||
{
|
||||
u8 State;
|
||||
__packed struct
|
||||
{
|
||||
u8 TankLeaked : 1;
|
||||
u8 GasLeakage : 1;
|
||||
u8 THOutOfLimits : 1;
|
||||
u8 TLOutOfLimits : 1;
|
||||
u8 PHHOutOfLimits : 1;
|
||||
u8 PLLOutOfLimits : 1;
|
||||
u8 Electrostatic : 1;
|
||||
u8 beiyong : 1;
|
||||
|
||||
}Flag;
|
||||
}TankState_Type;
|
||||
__packed typedef struct
|
||||
{
|
||||
u32 OilCNT ; //实时油量
|
||||
u32 MoneyCNT ; //实时金额
|
||||
}FData_Type;//8byte
|
||||
|
||||
__packed typedef struct
|
||||
{
|
||||
u64 TotalLit; //油量总累
|
||||
u64 TotalMoney; //金额总累
|
||||
}CTOTAL_Type;//16byte
|
||||
|
||||
__packed typedef struct
|
||||
{
|
||||
u8 GunNumber; //枪号
|
||||
FData_Type FData; //加油数据
|
||||
u32 Price; //单价
|
||||
CTOTAL_Type CTOTAL; //累计
|
||||
CTIME_type RTIME; //完成时间
|
||||
u32 OrderNumber; //订单号,离线授权的话为0
|
||||
u8 CardNum[6]; //卡号 6BYTE BCD
|
||||
u8 Standby[51]; //预留
|
||||
}PREXDATA_Type;//
|
||||
typedef struct
|
||||
{
|
||||
u8 PrintBuff[20][32];
|
||||
}PrintInfo_Type;
|
||||
typedef union
|
||||
{
|
||||
u8 State;
|
||||
struct
|
||||
{
|
||||
u8 : 1; //
|
||||
u8 : 1; //
|
||||
u8 : 1; //
|
||||
u8 TitleFlag : 1; //受控标志1受控0自控
|
||||
u8 : 1; //
|
||||
u8 StartFlag : 1; //开机标志1开机0停机
|
||||
u8 Pause : 1; //暂停
|
||||
u8 GunUp : 1; //提枪
|
||||
}Flag;
|
||||
}fuelState_TypeDef;
|
||||
typedef union
|
||||
{
|
||||
u8 Buff[10];
|
||||
__packed struct
|
||||
{
|
||||
float Longitude; //经度
|
||||
u8 LongitudeType; //经度类型
|
||||
float Latitude ; //纬度
|
||||
u8 LatitudeType ; //纬度类型
|
||||
}GPS;
|
||||
}GPS_Type;
|
||||
typedef enum
|
||||
{
|
||||
Display_664,
|
||||
Display_886,
|
||||
|
||||
}Display_Typ;
|
||||
typedef enum
|
||||
{
|
||||
YWY_Bluesky,
|
||||
YWY_Probe_KY,
|
||||
YWY_Pressure,
|
||||
|
||||
}YWY_Typ;
|
||||
typedef enum
|
||||
{
|
||||
Preset_Sale,
|
||||
Preset_Volume,
|
||||
}Preset_Typ;
|
||||
typedef enum
|
||||
{
|
||||
POS_Connect_Typ_Station,
|
||||
POS_Connect_Typ_Cloud,
|
||||
POS_Connect_Typ_Cloud_Tast,
|
||||
//POS_Connect_Typ_WifiStation,
|
||||
|
||||
POS_Connect_Typ_End,
|
||||
|
||||
}POS_Connect_Typ;
|
||||
typedef enum
|
||||
{
|
||||
POS_Net_Typ_4G_GM5,
|
||||
POS_Net_Typ_4G_L510,
|
||||
POS_Net_Typ_WiFi,
|
||||
POS_Net_Typ_WAN,
|
||||
|
||||
POS_Net_Typ_End,
|
||||
|
||||
}POS_Net_Typ;
|
||||
typedef enum
|
||||
{
|
||||
PosNormal,
|
||||
PosBlueSky,
|
||||
PosLY,
|
||||
PosJP,
|
||||
PosDart,
|
||||
PosYWY,
|
||||
PosRFID,
|
||||
PosYGao,
|
||||
PosHongYang,
|
||||
PosSSLan,
|
||||
PosBlueSkyPlus,
|
||||
PosPLC,
|
||||
PosPrice1_4,
|
||||
PosLanFeng,
|
||||
|
||||
}PosItem;
|
||||
typedef enum
|
||||
{
|
||||
At45DB041,
|
||||
At45DB321,
|
||||
At45DB641,
|
||||
}At45DBTypeItem;
|
||||
typedef union
|
||||
{
|
||||
u8 State;
|
||||
struct
|
||||
{
|
||||
u8 State : 2;
|
||||
u8 PresetType : 2; //
|
||||
u8 PresetMode : 1; //
|
||||
u8 UpdateRecords: 1; //有信息标志1
|
||||
u8 Unit : 1; //
|
||||
u8 GunUp : 1; //提枪标志1提枪0挂枪
|
||||
}Flag;
|
||||
}YGGunState_TypeDef;
|
||||
typedef union
|
||||
{
|
||||
u8 State;
|
||||
struct
|
||||
{
|
||||
u8 GunNum : 3;//抢号
|
||||
u8 State : 1; //状态0挂枪1提枪
|
||||
u8 Null : 4; //
|
||||
}Flag;
|
||||
}DartGunState_TypeDef;
|
||||
typedef union
|
||||
{
|
||||
u8 State;
|
||||
struct
|
||||
{
|
||||
u8 : 1;
|
||||
u8 ErroFlag : 1; //有错误标志
|
||||
u8 : 1; //1有未上传记录0没有
|
||||
u8 TitleFlag : 1; //受控标志1受控0自控
|
||||
u8 BatteryFlag : 1; //电池电量标志1有电0没电
|
||||
u8 StartFlag : 1; //开机标志1开机0停机
|
||||
u8 EventFlag : 1; //有事件标志
|
||||
u8 GunUp : 1; //提枪标志1提枪0挂枪
|
||||
}Flag;
|
||||
}LTGunState_TypeDef;
|
||||
typedef union
|
||||
{
|
||||
u8 State;
|
||||
struct
|
||||
{
|
||||
u8 PriceChange : 1; //单价变更
|
||||
u8 ShiftChange : 1; //班累变更
|
||||
u8 TotalChange : 1; //总累变更
|
||||
u8 StartFlag : 1; //加油中
|
||||
u8 TitleFlag : 1; //受控状态
|
||||
u8 GunUp : 1; //提枪状态
|
||||
u8 : 1;
|
||||
u8 : 1; //
|
||||
}Flag;
|
||||
}HYState_TypeDef;
|
||||
typedef union
|
||||
{
|
||||
u8 State;
|
||||
struct
|
||||
{
|
||||
u8 : 1; //
|
||||
u8 : 1; //
|
||||
u8 : 1; //
|
||||
u8 : 1; //
|
||||
u8 GunUp : 1; //提枪状态
|
||||
u8 : 1; //
|
||||
u8 : 1;
|
||||
u8 : 1; //
|
||||
}Flag;
|
||||
}HYSelfTestState_TypeDef;
|
||||
typedef union
|
||||
{
|
||||
u8 State;
|
||||
struct
|
||||
{
|
||||
u8 GunUP_Flag : 1; //提枪状态
|
||||
u8 Start_Flag : 1; //启动状态
|
||||
u8 UpdateDisplay : 1; //需更新数据
|
||||
u8 UpdateRecords : 1; //需入库 //慎重,非油机设备不要用这个标志
|
||||
u8 : 1; //
|
||||
u8 AuthorizeState: 1; //授权状态
|
||||
u8 LockState : 1; //枪锁定状态
|
||||
u8 Online : 1; //在线
|
||||
}Flag;
|
||||
}GunState_TypeDef;
|
||||
typedef struct
|
||||
{
|
||||
u8 VersionFindFlag;
|
||||
u8 Version[10];
|
||||
}GunVersion_Type;
|
||||
typedef union
|
||||
{
|
||||
u8 State;
|
||||
struct
|
||||
{
|
||||
u8 Update_Flag : 1; //升级标志
|
||||
u8 RightRun_Flag : 2; //待运行标志
|
||||
u8 BaudRateSync_Flag : 1; //波特率同步标志
|
||||
u8 HaveBackups : 1; //有备份过
|
||||
u8 : 1; //
|
||||
u8 : 1; //
|
||||
u8 DisableUpdate : 1; //不允许更新
|
||||
}Flag;
|
||||
}ROM_UpData_State_Type;
|
||||
typedef struct
|
||||
{
|
||||
u8 Number;//关联设备的设备号
|
||||
u8 Port;//端口
|
||||
u8 location;//内存位置
|
||||
}AssociatedDevices_Type;
|
||||
typedef struct
|
||||
{
|
||||
u8 Handshake; //握手步骤进度
|
||||
u8 DartSeq; //dart协议通讯序号
|
||||
u8 LYGunNeedCMD; //下下个需要的命令
|
||||
u8 LYGunState; //龙野协议枪状态
|
||||
u8 LYHandshakeCRC; //龙野握手校验
|
||||
u8 MB_CMD_Next; //下个命令
|
||||
u8 MB_CMD_Next_End;//指令不自动转换,主要是在停止生成记录和启动的过程。用在改单价之火读取单价和单独预置指令
|
||||
u8 PresteType; //
|
||||
u32 PresetValue; //
|
||||
timer_TypeDef LTDelayTimer; //蓝天协议下加油结束等待生成总累
|
||||
GunState_TypeDef fuelState_B; //上次枪状态
|
||||
u8 SlaveNeedReply; //回复wifi从机的状态,转接中心过来的枪状态的回复信息给从机
|
||||
FData_Type FData; //实时数据
|
||||
CTOTAL_Type CTOTAL; //累计
|
||||
u32 Price; //单价
|
||||
u8 PriceStete; //单价0=不生效;1=一次性生效;2=永久生效
|
||||
u32 PulseCoefficient;//脉冲当量
|
||||
u16 ValveValue; //提前关阀量
|
||||
u16 MinDisplay; //最小显示值
|
||||
u8 RSSI; //LORA信号强度
|
||||
u8 Call; //请求授权
|
||||
u8 WaitPREXDATA_flag;//等待记录形成,完成之前不能再次启动,防止形成记录之前再次授权
|
||||
u8 CardNumber[10];
|
||||
u8 RFIDUserName[15];
|
||||
u8 CardPSWD[3];
|
||||
u8 CarLicensePlate[15];
|
||||
u32 Mileage;
|
||||
u8 BalanceDecimal;
|
||||
u8 Balance[5];
|
||||
u8 RFIDState;
|
||||
AssociatedDevices_Type AssociatedDevices;//没有对应RFID为0(关联设备信息)
|
||||
GunVersion_Type GunVersion;
|
||||
u16 FrameNow;
|
||||
ROM_UpData_State_Type ROM_UpData_State;
|
||||
u8 FatherNum;//父设备号
|
||||
u8 SonNum;//子设备在父设备中的位置
|
||||
u8 ParameterNumber;
|
||||
YGGunState_TypeDef YGGunState; //龙野协议枪状态
|
||||
}GunInfo_Type;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
ROM_UpData_State_Type ROM_UpData_State;
|
||||
u16 FrameTop;
|
||||
}ROM_UpData_Type;
|
||||
typedef enum
|
||||
{
|
||||
Control_POSAuto,
|
||||
Control_POSManual,
|
||||
Control_BoxAuto,
|
||||
Control_NoGun,
|
||||
}GunControlState_Item;
|
||||
typedef enum
|
||||
{
|
||||
NowAuthorizeType_Online,
|
||||
NowAuthorizeType_Offline_NoCard,
|
||||
NowAuthorizeType_Offline_Card,
|
||||
}NowAuthorizeType_Type;
|
||||
typedef struct
|
||||
{
|
||||
u8 GunNummber;
|
||||
u8 GunAddr;
|
||||
GunState_TypeDef GunState;
|
||||
u32 OrderNumber;
|
||||
u8 RFIDBinding;//绑定的RFID编号
|
||||
ROM_UpData_State_Type ROM_UpData_State;
|
||||
u8 GunControlState;//授权模式
|
||||
u8 NowAuthorizeType;//当前加油的授权方式0;在线;1离线非卡;2离线白名单
|
||||
u8 Standby[3];
|
||||
}GunData_Type;
|
||||
typedef enum
|
||||
{
|
||||
MD_RS485,
|
||||
MD_LORA,
|
||||
|
||||
}MDConnectType;
|
||||
typedef union
|
||||
{
|
||||
u8 State;
|
||||
struct
|
||||
{
|
||||
u8 OilCNT : 2;
|
||||
u8 MoneyCNT : 2;
|
||||
u8 Price : 2;
|
||||
}Dec;
|
||||
}GunDec_TypeDef;
|
||||
typedef struct
|
||||
{
|
||||
u8 Number;
|
||||
u8 Type[7];
|
||||
}PaymentType_Type;
|
||||
typedef struct
|
||||
{
|
||||
u32 BaudRate;
|
||||
u8 StopBits;
|
||||
u8 Parity_Even;
|
||||
u8 POSType; //协议类型
|
||||
u8 DeviceNumber; //设备数量
|
||||
u32 MBCountTime; //轮询时间ms
|
||||
u8 Device_Type; //设备类型
|
||||
u8 MDConnectType;//连接形式 485/LORA
|
||||
u8 ROM_UpData_Version[10];
|
||||
ROM_UpData_Type ROM_UpData;
|
||||
GunDec_TypeDef GunDec;
|
||||
PaymentType_Type PaymentType;
|
||||
u8 Standby[10];
|
||||
}PortData_Type;
|
||||
typedef struct
|
||||
{
|
||||
PortData_Type PortData;
|
||||
GunData_Type GunData[16];
|
||||
}MD_Port_Data_Type;
|
||||
typedef struct
|
||||
{
|
||||
u8 SonNumber;//子设备数量
|
||||
u8 Address;//统一指令
|
||||
u8 SonStart;//第一个子设备的内存位置
|
||||
u8 SonNow;//当前要操作的枪
|
||||
u8 Handshake;//握手序号
|
||||
u8 MB_CMD_Next;
|
||||
u8 MB_CMD_Need; //下下个需要的命令
|
||||
u8 Handshake_Top;//握手序号最大值
|
||||
u8 Password_Lever;
|
||||
u32 Password;
|
||||
u8 LockType;
|
||||
u8 LockTime[3];//年月日
|
||||
u16 lockNummber;
|
||||
u8 LockValue[6];
|
||||
GunVersion_Type Version;
|
||||
u16 FrameNow;
|
||||
u8 Mac[12];
|
||||
timer_TypeDef LTDelayTimer; //蓝天协议下加油结束等待生成总累,其他协议也可以用来判断是否行程记录的时间
|
||||
}FatherDevice_Type;
|
||||
typedef struct
|
||||
{
|
||||
GunState_TypeDef State;
|
||||
u8 SingleOrDouble;//单双面0单1双
|
||||
u8 PriceNumber;//面板数量
|
||||
u8 Length;//单价长度2-6
|
||||
u8 Brightness;//亮度0-8
|
||||
u32 Price[12];//
|
||||
u8 Decimal[12];//小数位
|
||||
}PriceTagData_Type;
|
||||
typedef struct
|
||||
{
|
||||
u8 pGunReturn;//插队之后返回
|
||||
u8 pGunCapture;//插队的枪号
|
||||
u8 pGunNow;//当前发送枪号
|
||||
u8 PumpNow;//当前发送泵号
|
||||
u8 LoopGunNextFlag;//允许继续发送下一枪
|
||||
u8 Handshake_Top;//握手序号最大值
|
||||
u8 FatherDeviceTop;//几个泵
|
||||
FatherDevice_Type FatherDevice[16];//每个泵的信息
|
||||
GunInfo_Type GunInfo[16];
|
||||
PriceTagData_Type PriceTagData;
|
||||
}MD_Port_Info_Type;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u8 DeviceNumber;
|
||||
PortData_Type PortData[5];
|
||||
GunState_TypeDef State[5];
|
||||
u8 Standby[20];
|
||||
}MD_Multiplex_Port_Data_Type;
|
||||
typedef struct
|
||||
{
|
||||
u8 DevicerReturn;//插队之后返回
|
||||
u8 DevicerCapture;//插队的枪号
|
||||
u8 DevicerTypeNow;//当前发送的设备类型
|
||||
u8 PrintPlaceNumber;//当前打印位置
|
||||
u8 PrintType;//当前打印类型
|
||||
u8 LoopDevicerNextFlag;//允许继续发送下一枪
|
||||
u8 Handshake[5];//握手序号最大值
|
||||
u8 MB_CMD_Next[5];
|
||||
u8 Handshake_Top[5];//握手序号最大值
|
||||
timer_TypeDef MultiplexDevicerTimer[5];
|
||||
u8 MBCountCutNum[5];
|
||||
GunState_TypeDef State[5];
|
||||
PriceTagData_Type PriceTagData;
|
||||
}MD_Multiplex_Port_Info_Type;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char CMD_SOCKA[50];
|
||||
char IMEI[20];
|
||||
char APN[40];
|
||||
char WiFIName[40];
|
||||
char WiFIPassWord[20];
|
||||
}WirelessData_Type;
|
||||
typedef struct
|
||||
{
|
||||
WirelessData_Type WirelessData;
|
||||
union
|
||||
{
|
||||
u16 State;
|
||||
struct
|
||||
{
|
||||
u8 ConnectMode : 4;
|
||||
u8 NetworkSet : 4;//如果是wifi从机模式,参数当WiFiHostSet用
|
||||
}Flag;
|
||||
}POSConnectTyye;
|
||||
u8 Address;//从机自身的地址,目的是分时发送数据
|
||||
u8 WhiteListVersion;
|
||||
u8 Standby[19];
|
||||
}POSData_Type;
|
||||
typedef struct
|
||||
{
|
||||
u8 Link_Flag;
|
||||
u8 ConnectType;
|
||||
u8 NetType;
|
||||
u8 POS_ConnectRXTask_Flag;
|
||||
u8 POS_CMD_Next;
|
||||
u8 WiFiSetState;
|
||||
u8 WiFiRSSI;
|
||||
u8 WiFiChannel;
|
||||
u8 AskCongfig_Num;//上电申请配置下发,1-2端口
|
||||
u8 HostHandshake;
|
||||
u8 IP[50];
|
||||
}POS_Info_Type;
|
||||
|
||||
|
||||
typedef union
|
||||
{
|
||||
u16 State;
|
||||
struct
|
||||
{
|
||||
u8 POSNetSetErrNummber : 3; //网络模块配置失败次数
|
||||
u8 POSNetCMDNext : 4; //指令模式下待发送指令
|
||||
u8 WorkMode : 1; //工作模式Bit6 0:指令 1:透传
|
||||
}Flag;
|
||||
}POSNetSetState_TypeDef;
|
||||
typedef union
|
||||
{
|
||||
u16 State;
|
||||
struct
|
||||
{
|
||||
u8 ConnectSetErrNummber : 3; //网络模块配置失败次数
|
||||
u8 SetModeCMDNext : 4; //指令模式下待发送指令
|
||||
u8 WorkMode : 1; //工作模式Bit6 0:指令 1:透传
|
||||
}Flag;
|
||||
}MDConnectState_TypeDef;
|
||||
typedef union
|
||||
{
|
||||
u8 State;
|
||||
struct
|
||||
{
|
||||
|
||||
u8 APN : 1; //配置文件包含APN
|
||||
}Flag;
|
||||
}Sysconfig_Flag_TypeDef;
|
||||
typedef struct
|
||||
{
|
||||
u16 WhiteListTop;
|
||||
u8 CardNum[200][6];
|
||||
}WhiteList_Type;
|
||||
typedef struct
|
||||
{
|
||||
u32 PREXDATA_NowWaitUpNummber;//这次上传时记录数量备份
|
||||
u16 PREXDATA_NowFrame; //这次上传的帧
|
||||
u8 PREXDATA_NowFrameLen;//这次上传的帧包含的条数
|
||||
}PREXDATA_Upload_Type;
|
||||
typedef union
|
||||
{
|
||||
u8 State;
|
||||
struct
|
||||
{
|
||||
u8 Power10V : 1;
|
||||
u8 Power7V : 1;
|
||||
}Flag;
|
||||
}PowerDown_TypeDef;
|
||||
typedef union
|
||||
{
|
||||
u8 State;
|
||||
struct
|
||||
{
|
||||
u8 : 1; //
|
||||
u8 : 1; //
|
||||
u8 : 1; //
|
||||
u8 : 1; //
|
||||
u8 : 1; //
|
||||
u8 : 1; //
|
||||
u8 : 1; //
|
||||
u8 Online : 1; //在线
|
||||
}Flag;
|
||||
}CNGPLCState_TypeDef;
|
||||
typedef union
|
||||
{
|
||||
u8 Buff[80]; //ModBus寄存器组
|
||||
__packed struct
|
||||
{
|
||||
float PistonAValue;//A活塞当前值`
|
||||
float PistonBValue;//B活塞当前值
|
||||
float IntakePressure; //进气压力
|
||||
float LowPressure; //低压压力
|
||||
float InstrumentAirPressure;//仪表风压力
|
||||
float MediumPressure; //中压压力
|
||||
float GasConcentration1;//橇内燃气浓度1
|
||||
float HydraulicOilTemperature;//液压油温
|
||||
float HighPressure; //高压压力
|
||||
float ProtectPressure; //保护压力
|
||||
float WaterTemperature; //水流温度
|
||||
float GasConcentration2; //燃气浓度2
|
||||
float GasConcentration3; //燃气浓度3
|
||||
u16 MW28Alarm; //MW28报警
|
||||
u16 MB5Alarm; //MB5报警
|
||||
u16 MB10Alarm; //MB10报警
|
||||
}REG;
|
||||
}CNGPLCData_Type;
|
||||
typedef struct
|
||||
{
|
||||
u16 Encryption[4];
|
||||
ErrState_TypeDef ErrState;
|
||||
u8 BoardType;//靠按键状态识别是不是新版本的主板
|
||||
u8 HardwareVersion;//硬件版本 ////24-31是大板,32-38是小板,小板没有第五端口
|
||||
u8 WiFiSlaveMode;
|
||||
Sysconfig_Flag_TypeDef Sysconfig_Flag;
|
||||
|
||||
PowerDown_TypeDef PowerDown;
|
||||
u8 SystemErr;
|
||||
u16 POS2MD_Buff_Len;
|
||||
u8 USART6_Drive;
|
||||
u8 SurfaceNow;
|
||||
u8 SurfaceNowLine;
|
||||
u8 SurfaceNowItem;
|
||||
u8 SurfaceSelected_Flag;
|
||||
u8 DisplayOn;
|
||||
u8 KeyNum;
|
||||
timer_TypeDef KeyFindTimer;
|
||||
u8 POS_MonitorModel;//监控模式
|
||||
u8 OfflineAuthorize;
|
||||
u16 OfflineAuthorizeNumberMax;
|
||||
PREXDATA_Type PREXDATA[5];
|
||||
u32 PREXDATA_WaitUpNummber;//待上传数量
|
||||
PREXDATA_Upload_Type PREXDATA_Upload;
|
||||
u32 PREXDATA_TTC;
|
||||
PREXDATA_Type PrintLastRecord[64];//越南打印每把枪最后一笔数据
|
||||
PREXDATA_Type PrintRecord;//历史记录打印,后台下发数据
|
||||
PrintInfo_Type PrintInfo;
|
||||
ROM_UpData_Type ROM_UpData;
|
||||
u8 ROM_UpData_ProgressBar;
|
||||
u8 ROM_UpData_Port;
|
||||
LTGunState_TypeDef LTGunState; //蓝天协议枪状态
|
||||
//YGGunState_TypeDef YGGunState; //龙野协议枪状态
|
||||
DartGunState_TypeDef DartGunState;//Dart协议枪状态
|
||||
HYState_TypeDef HYState; //弘扬协议状态
|
||||
HYSelfTestState_TypeDef HYSelfTestState;//弘扬协议状态
|
||||
u8 FRam_Flag;
|
||||
u8 ATDB45_Flag;
|
||||
u8 ATDB45Type;
|
||||
u8 Frame[513];
|
||||
u8 UDisk_Flag;
|
||||
CTIME_type CTIME;
|
||||
CTIME_type PosCTIME;
|
||||
u32 RNGData;
|
||||
float Apacity[100];
|
||||
u8 TankNumTop;
|
||||
TankState_Type TankState[5][12];
|
||||
TankData_Type TankData[5][12];
|
||||
CNGPLCData_Type CNGPLCData;
|
||||
CNGPLCState_TypeDef CNGPLCState;
|
||||
|
||||
WhiteList_Type WhiteList;//白名单列表
|
||||
|
||||
//MessageQueue_Type POS_TX_MessageQueue;
|
||||
u8 POS_TX_CMDNow;
|
||||
u8 PCCountMail_Flag;
|
||||
u16 PCMail_RX_Len;
|
||||
|
||||
u8 PosYWY_Pressure_Nummber;
|
||||
timer_TypeDef CTIMEReadTimer;
|
||||
timer_TypeDef HeartbeatTimer;
|
||||
timer_TypeDef POS_RS232Timer;
|
||||
timer_TypeDef ReSendDataTimer;
|
||||
//PCCount_RX_Buff_TypeDef PCCountMail;
|
||||
|
||||
u8 ConnectType;
|
||||
timer_TypeDef DelayDetectionTimer; //网络延迟检测定时器
|
||||
u32 DelayDetection;//网络延迟数据,0表示收不到信息
|
||||
timer_TypeDef POSCutTimer;
|
||||
timer_TypeDef MDRestartTimer[4]; //
|
||||
u8 POSLOCK_Impower;
|
||||
POSNetSetState_TypeDef POSNetSetState;
|
||||
u8 ICCID[21];
|
||||
POSData_Type POSData;
|
||||
POS_Info_Type POS_Info;
|
||||
timer_TypeDef GPSDataTimer;
|
||||
GPS_Type GPSData;
|
||||
|
||||
u8 Timer_Num_Top;
|
||||
volatile timer_TypeDef *Timer_Buff[200];
|
||||
timer_TypeDef AnalogTimer;
|
||||
MDConnectState_TypeDef MDConnectState[5];
|
||||
u8 MD_Port_Num_Top;
|
||||
u8 MD_Gun_Num_Top;
|
||||
timer_TypeDef MBCountRXIDLETimer[4];
|
||||
timer_TypeDef MBCountTimer[4];
|
||||
u8 MBCountCutNum[4][16]; //断线定时器
|
||||
MD_Multiplex_Port_Data_Type MD_Multiplex_Port_Data;//端口5,多路复用口
|
||||
MD_Multiplex_Port_Info_Type MD_Multiplex_Port_Info;
|
||||
timer_TypeDef MD_MultiplexRXIDLETimer;
|
||||
timer_TypeDef MD_MultiplexTimer;
|
||||
u16 MD_Multiplex_Rec_Nummber;
|
||||
u16 MD_Multiplex_Rec_NummberB;//临时判断接受长度
|
||||
MD_Port_Data_Type MD_Port_Data[4];
|
||||
MD_Port_Info_Type MD_Port_Info[4];
|
||||
u16 MD_Rec_Nummber[4];
|
||||
u16 MD_Rec_NummberB[4];//临时判断接受长度
|
||||
timer_TypeDef MD_FramContinuityTimer[4];
|
||||
timer_TypeDef POSReLinkTimer;
|
||||
|
||||
timer_TypeDef MD_LORA_SlaveTimer;
|
||||
u8 MD_LORA_Slave_Flag;
|
||||
u8 MD_LORA_Set_Flag;
|
||||
}TXHData_type;
|
||||
|
||||
//******************************************************************************
|
||||
extern volatile TXHData_type TXHData;//定义指针数据
|
||||
extern const u8 BoxVersion[11];
|
||||
extern cup_t STM32CPU;
|
||||
void TXH_Init(void);
|
||||
void TXH_Task(void);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user