#ifndef __KEYSLAVE485_H #define __KEYSLAVE485_H #include "stm32f7xx_hal.h" //必须配置三项参数:看门狗,液位计类型,油品类型。李伟修改 20210420 #define TIME_OF_Break_seal_cnt 1 //30 连续破封判断次数 #define En_AnHuiKaiLe 0 //安徽开乐产品试用增加温度 压力显示 #define En_XieYouFa_OverSample 1 //卸油阀优化 增加一次读取 #define ElecFence_AutoSeal_EN 1 //电子围栏自动施封 #define DisplaySensorData_En 1 //是否允许模拟量传感器数据显示,比如温度压力等参数 #define Max_Usart2_ErrorTime 32 //最大读取错误次数 #define VoicePlay_En 0 //串口4上的语音播报;已经有打印机、按键两个设备 #define Printer_En 1 //串口4上的打印机是否启用 新疆项目则启用;北京部队试用不启用 #define KeyPad_Set_SealState_En 1 //允许按键修改电子铅封的状态 /* Base address of the Flash sectors */ #define ADDR_FLASH_SECTOR_0 ((uint32_t)0x08000000) /* Base address of Sector 0, 32 Kbytes */ #define ADDR_FLASH_SECTOR_1 ((uint32_t)0x08008000) /* Base address of Sector 1, 32 Kbytes */ #define ADDR_FLASH_SECTOR_2 ((uint32_t)0x08010000) /* Base address of Sector 2, 32 Kbytes */ #define ADDR_FLASH_SECTOR_3 ((uint32_t)0x08018000) /* Base address of Sector 3, 32 Kbytes */ #define ADDR_FLASH_SECTOR_4 ((uint32_t)0x08020000) /* Base address of Sector 4, 128 Kbytes */ #define ADDR_FLASH_SECTOR_5 ((uint32_t)0x08040000) /* Base address of Sector 5, 256 Kbytes */ #define ADDR_FLASH_SECTOR_6 ((uint32_t)0x08080000) /* Base address of Sector 6, 256 Kbytes */ #define ADDR_FLASH_SECTOR_7 ((uint32_t)0x080C0000) /* Base address of Sector 7, 256 Kbytes */ #define StartBytes_IAP ((uint32_t)0xA55A55AA) //远程升级的起始字节 #define EndBytes_IAP ((uint32_t)0x5AA5AA55) //远程升级的结束字节 #define New236Byte_En_0x1121 0 //新增的236字节传输1-4仓、5-8仓协议 #define New150Byte_En_0x1193 1 //新增的150字节传输每仓所有传感器的协议,一帧数据中传输每仓铅封、IO、模拟量数据 #define New64Byte_En_0x0013 0 //阀门状态或运算之后进行传输 #define New80Byte_En_0x119B 1 //新增的传输整车传感器,倾角、备电、等 #define New64Byte_En_0x0020 1 //北京部队试用新增的一组64字节的阀门状态传输协议 #define ExtAddr_ControllBoard 0x95020002 //控制板的4字节地址 扩展地址 #define ExtAddr_ControllBoard2 0x95500002 //控制板的4字节地址 扩展地址 #define Length_Of_PayLoad_RemCali 44 //远程标定的有效载荷长度 帧长度64,有效载荷44字节 #define DataMode_For_RemCali 0x01 //远程标定的数据模式,00=ASCII,01=HEX #define Length_Of_Reply_RemCali 67 //远程标定返回的数据长度,分别为131和67;十六进制模式下为67 #define F2_and_key4 0xbffb //20210120新增 液位计类型 --------------必须配置的参数2/3 //01--磁致伸缩液位计; 02————雷达液位计 #define TypeOf_YeWeiJi 0x02 //#define TypeOf_YeWeiJi 0x01 /////////油品配置!!!必须要配置!!! --------------必须配置的参数3/3 //0.08%为柴油的膨胀系数 0.12%为汽油的膨胀系数 //20210419 --56454为柴油车;54021为汽油车 #define SCL_Factor_diesel ((float)0.08) //柴油与汽油的膨胀系数 0808车为柴油,56454柴油 #define SCL_ControllToPlatForm (1000.00f) //屏幕唤醒的休眠时间间隔 20210408 同北京迪文屏供应商联系之后确认40ms是屏幕的刷新间隔,留下10ms余量 #define LCD_TimeOfWake 50 #define ShowPassword_JieFeng_En 0 //是否在屏幕上显示密码 #define ShowCang02_IO_EN 1 //是否在屏幕上显示2仓阀门开关信息 #define Show_Sys_Info_EN 1 //是否在屏幕上显示运行信息 //采集器上传给控制器的液位、温度数据,int16格式传输,精度为0.1mm 所以要缩小10倍 #define SCL_Yewei_Collect2Contr (0.1f) #define SCL_Temp_Collect2Contr (0.1f) #define SCL_Angle (180.0f/32768.0f) //三点式温度传感器,1=启用;0=未安装或者未启用 #define TriTempSensorOn 1 //是否打印日期和时间 调试比武期间不打印时间信息,手写出库、到站信息 #define PrintDateTime 0 //读取采集器的时间间隔 单位为毫秒ms #define READ_COLLECT_INTERVAL ((uint16_t)500U) //远程标定的时间 //#define SPAN_RemoteCali_INTERVAL ((uint32_t)(600000)) //600秒 #define SPAN_RemoteCali_INTERVAL ((uint32_t)(10000)) //10秒 #define SPAN_ControllerAndCollector_INTERVAL_100 ((uint32_t)(100)) //150ms 采集器的命令响应时间 #define SPAN_ControllerAndCollector_INTERVAL_120 ((uint32_t)(120)) //120ms 采集器的命令响应时间 #define SPAN_ControllerAndCollector_INTERVAL_180 ((uint32_t)(180)) //180ms 采集器的命令响应时间 //手工输入温度制后默认的保持时间 20210303调整为60分钟 #define SPAN_Manual_Input_Temp ((uint32_t)(3600000)) //40分钟=2400s换算为ms //#define SPAN_Manual_Input_Temp ((uint32_t)(1200000)) //20分钟=1200s换算为ms //任何按键按下后默认的保持时间 ----控制屏幕强制唤醒的时间 #define SPAN_KeyPress_Time ((uint32_t)(600000)) //600秒 ///////异常状态标志 #define ADDR_DWIN_StateYiChang_CoverSmall 0x1046 //迪文屏幕人孔小盖地址 #define ADDR_DWIN_StateYiChang_CoverBig 0x1048 //迪文屏幕人孔大盖地址 #define ADDR_DWIN_StateYiChang_XieYouFa 0x1042 //迪文屏幕卸油阀地址 #define ADDR_DWIN_StateYiChang_HaiDiFa 0x1044 //迪文屏幕海底阀地址 #define ADDR_DWIN_Seal_Lock 0x100C //迪文屏幕施封图标(关闭的锁)地址 #define ADDR_DWIN_Seal_UnLock 0x100F //迪文屏幕破封图标(打开的锁)地址 #define ADDR_DWIN_Car_State 0x1022 //迪文屏幕车辆状态图标地址 #define ADDR_DWIN_Operation_State 0x1024 //迪文屏幕操作状态状态图标地址 装油 卸油 空闲 #define ADDR_DWIN_Loading_Oil_Mode 0x1028 //迪文屏幕装油模式图标地址 上装 下装 #define ADDR_DWIN_UnLoading_Oil_Mode 0x102a //迪文屏幕卸油动画图标地址 上装 下装 #define ADDR_DWIN_Num_Of_CangId 0x103A //迪文屏幕仓号图标地址 1--8 #define ADDR_DWIN_CoverSmall 0x1000 //迪文屏幕人孔小盖开关地址 打开或者关闭 #define ADDR_DWIN_CoverBig 0x1003 //迪文屏幕人孔大盖开关地址 打开或者关闭 #define ADDR_DWIN_HaiDiFa 0x1006 //迪文屏幕海底阀开关地址 打开或者关闭 #define ADDR_DWIN_XieYouFa 0x1009 //迪文屏幕卸油阀开关地址 打开或者关闭 #define ADDR_DWIN_Seal_UnLock 0x100F //迪文屏幕破封图标(打开的锁)地址 #define ADDR_DWIN_Loading_Oil 0x1012 //迪文屏幕装油动画图标(打开的锁)地址第一仓,后边每仓地址+2 #define ADDR_DWIN_Text01 0x1070 //迪文屏幕显示文本框的地址 #define ADDR_DWIN_Text02 0x1270 //迪文屏幕显示文本框的地址 #define ADDR_DWIN_Text03_sysInfo 0x1470 //迪文屏幕显示文本框的地址----------系统运行信息 #define ADDR_DWIN_Text04 0x1670 //迪文屏幕显示文本框的地址 #define ADDR_DWIN_Text05 0x1870 //迪文屏幕显示文本框的地址---启动界面的版本信息 //#define ADDR_DWIN_Title_IO 0x1B00 //阀门名称标志 //#define ADDR_DWIN_Cang01_IO 0x1C00 //仓1的阀门状态信息 //#define ADDR_DWIN_Cang02_IO 0x1A00 //仓2的阀门状态信息 //#define ADDR_DWIN_Cang03_IO 0x1D00 //仓3的阀门状态信息 //#define ADDR_DWIN_Cang04_IO 0x1E00 //仓4的阀门状态信息 #define ADDR_DWIN_Title_IO 0x1A00 //阀门名称标志 #define ADDR_DWIN_Cang01_IO 0x1B00 //仓1的阀门状态信息 #define ADDR_DWIN_Cang02_IO 0x1C00 //仓2的阀门状态信息 #define ADDR_DWIN_Cang03_IO 0x1D00 //仓3的阀门状态信息 #define ADDR_DWIN_Cang04_IO 0x1E00 //仓4的阀门状态信息 #define ADDR_DWIN_SensorInfo 0x2100 //模拟传感器类信息描述指针 #define ADDR_DWIN_SensorInfoAll 0x3100 // #define ADDR_DWIN_Text01_SP 0x5000 //迪文屏幕显示文本框的描述指针地址 #define ADDR_DWIN_Text02_SP 0x5010 #define ADDR_DWIN_Text03_SP 0x5020 #define ADDR_DWIN_Text04_SP 0x5030 #define ADDR_DWIN_Text05_SP 0x5040 #define ADDR_DWIN_Title_IO_SP 0x5050 //阀门名称描述指针 #define ADDR_DWIN_Cang01_IO_SP 0x5060 //仓1的阀门状态信息描述指针 #define ADDR_DWIN_Cang02_IO_SP 0x5070 //仓2的阀门状态信息描述指针 #define ADDR_DWIN_Cang03_IO_SP 0x5080 //仓3的阀门状态信息描述指针 #define ADDR_DWIN_Cang04_IO_SP 0x5090 //仓4的阀门状态信息描述指针 #define ADDR_DWIN_SensorInfo_SP 0x50A0 //模拟传感器类信息描述指针 #define ADDR_DWIN_Tempe01 0x2040 //1仓温度数据 #define ADDR_DWIN_Pressure01 0x2044 //1仓压力数据 #define ADDR_DWIN_Yewei01_Cang01 0x2048 //1仓液位数据 #define ADDR_DWIN_Qingjiao01 0x204c //倾角1数据 #define ADDR_DWIN_Qingjiao02 0x207c //倾角2数据 #define ADDR_DWIN_Zhongliang 0x2050 //1仓重量数据,或等于整车油品重量 #define ADDR_DWIN_TempeManualInput 0x2080 //手工输入的1仓温度;主要用于新疆现场比武 #define ADDR_DWIN_Yewei01_Cang02 0x2060 //2仓液位数据 #define ADDR_DWIN_Yewei01_Cang03 0x2064 //3仓液位数据 #define ADDR_DWIN_Yewei01_Cang04 0x2068 //4仓液位数据 #define ADDR_DWIN_Vt_Cang01 0x2054 //第1仓的Vt数据 #define ADDR_DWIN_Vt_Cang02 0x20A0 //第2仓的Vt数据 #define ADDR_DWIN_Vt_Cang03 0x20A4 //第3仓的Vt数据 #define ADDR_DWIN_Vt_Cang04 0x20A8 //第4仓的Vt数据 #define ADDR_DWIN_V20_Cang01 0x2058 //第一仓的V20数据 #define ADDR_DWIN_Tempe01_Cang01 0x2084 //第一仓的温度测量点1 #define ADDR_DWIN_Tempe02_Cang01 0x2088 //第一仓的温度测量点2 #define ADDR_DWIN_Tempe03_Cang01 0x208c //第一仓的温度测量点3 #define ADDR_DWIN_Density_Cang01 0x2090 //第一仓的密度数据 /////////////////以下内容不需要修改!!!!!!! //将会根据上述液位计类型修改相应的参数 /* #if(TypeOf_YeWeiJi==0x02) //注释掉柴油的膨胀系数则切换为汽油,否则自动切换为柴油 #define SCL_Factor_diesel ((float)0.08) //柴油的膨胀系数 0808车为柴油 #endif */ //Fram中存储的所有参数 #define ADDR_Extended_ContBoard 0x0000 // 0 95010001 扩展地址 #define ADDR_Version_ContBoard 0x0004 // 4 STM32F746VGT6+2021v1.06 版本号 #define ADDR_AutoSealed_Time 0x0024 // 36 自动施封时长 #define ADDR_DataSource_LiquidoMeter 0x002C // 44 液晶屏数据显示来源——液位参数 #define ADDR_DataSource_ElecSeal 0x0030 // 48 液晶屏数据显示来源——铅封参数 #define ADDR_V20_Point 0x0034 // 52 V20计算温度点的选择 #define ADDR_CarPlate_Number 0x0044 // 68 车牌号 #define ADDR_Zero_Of_LiquidMeter 0x0064 // 100 兼容8仓 液位计零点 #define ADDR_Zero_Of_TankCapacity 0x0084 // 132 罐容Vt零点 #define ADDR_ManHoLe_Number 0x00A4 // 164 人孔盖卸油阀数量 //add poly 20221027 FRAM地址与ADDR_OiLType_Data地址冲突,将外部地址也内部地址分离 #define FRAM_ADDR_Scan_Param 0x00C4 // 196 长度16字节,存储主动发送配置参数 #define FRAM_ADDR_Scan_flowID 0x00D4 // 212 长度4字节,发送序列ID存储 //end add poly #define ADDR_OiLType_Data 0x00E4 // 228 油品参数 膨胀系数 0.0008 0.0012 //modify poly 20221027 FRAM地址与ADDR_OiLType_Data地址冲突,将外部地址也内部地址分离 #define IDEX_ADDR_Scan_Param 0x00F4 // xy, 以此首地址的16字节区域,存放类F3协议终端功能的传感器轮询参数配置 //end modify poly #define ADDR_Zero_Of_TempSensor 0x0104 // 260 温度偏移参数 #define ADDR_TankShape_01 0x0124 // 292 1—4仓 罐车参数1 #define ADDR_TankShape_02 0x0164 // 356 5—8仓 罐车参数2 #define ADDR_SampIntervaL_Collector 0x01A4 // 420 单位为毫秒。取值范围为 同采集板的采样间隔 #define ADDR_CommuIntervaL_ScreenDwin 0x01B4 // 436 同迪文屏的通信间隔 #define ADDR_SleepTime_ScreenDwin 0x01C4 // 452 屏幕休眠时间 //modify boly 20221027 存储当前RTC时间 #define IDEX_ADDR_RTC_ScreenDwin 0x01CC // 460 屏幕RTC标定,只作为对外接口参数不存入FRAM中 #define FRAM_ADDR_TIME_record 0x01CC // 460 存储当前RTC时间 //end modifyy #define ADDR_TiltAngle_Sensor 0x01DC // 476 倾角补偿参数 #define ADDR_WarningOf_TiltAngle 0x01EC // 492 x报警门限5度,y报警门限5度,启用报警。 倾角报警门限 #define ADDR_Auto_OilStatic_Judgement 0x01FC // 508 10s滑动窗口时间,3mm液位波动,启用自动稳油 自动稳油参数/打印机自动稳油判断 #define ADDR_Restart_ContBoard 0x020C // 524 复位指令 #define ADDR_Unique_ID_ContBoard 0x0210 // 528 唯一ID #define ADDR_VersionOf_Software 0x0220 // 544 1.0.0.0 软件版本号 #define ADDR_VersionOf_Hardware 0x0240 // 576 1.0.0.1 硬件版本号 #define ADDR_VersionOf_LCD 0x0260 //608 #define ADDR_FactoryParam_ContBoard 0x0280 // 640 所有参数恢复为默认值 出厂参数 #define ADDR_SelfTest_ContBoard 0x0284 // 644 自检结果 #define ADDR_BaudRate_ContBoard 0x0288 // 648 波特率 #define ADDR_Zero001_ContBoard 0x0298 // 664 零点参数 #define ADDR_Scale001_ContBoard 0x02A8 // 680 灵敏度参数 #define ADDR_ThreshHold001_ContBoard 0x02B8 // 696 阈值参数 #define ADDR_Precision_ContBoard 0x02C8 // 712 精度 #define ADDR_TempFactor_ContBoard 0x02D8 // 728 温度补偿系数 #define ADDR_YmodemMode_ContBoard 0x02E8 // 744 Ymodem模式 //李伟修改 20211130 压力报警上限、下限、温度上限、下限、温度修正、压力窗口时长、压力正偏门限、负偏门限、压力修正、算法类型等 //数据格式统一标准化未浮点数,每个数据占用4字节。平台下发数据均为浮点数格式,控制板根据需要进行强制类型转换。 #define ADDR_RunAn_AlarmThreshold 0x02EC // 748 Res001 44个字节 //诸正龙增加 20220113 #define ADDR_USART1_RE_TIMEOUT 0x0318 //终端通信多少时间无接收重启 4字节 #define ADDR_DISP_VT_TYPE 0x031C //VT 20的显示数据来源 #define ADDR_Reserve002_ContBoard 0x02F0 // 752 Res002 #define ADDR_Reserve003_ContBoard 0x02F4 // 756 Res003 #define ADDR_Reserve004_ContBoard 0x02F8 // 760 Res004 #define ADDR_Reserve005_ContBoard 0x02FC // 764 Res005 #define ADDR_Reserve006_ContBoard 0x0300 // 768 Res006 #define ADDR_Reserve007_ContBoard 0x0304 // 772 Res007 #define ADDR_Reserve008_ContBoard 0x0308 // 776 Res008 #define ADDR_ElecSealData_BulkTrans_ContBoard 0x030C // 780 铅封液位批量上传 #define ADDR_Cabinet01_ContBoard 0x0310 // 784 32个浮点数参数或者64个int16类型数据,4字节对齐。一帧数据128*2=256字符上发给平台. 仓1 #define ADDR_Cabinet02_ContBoard 0x0390 // 912 仓2 #define ADDR_Cabinet03_ContBoard 0x0410 // 1040 仓3 #define ADDR_Cabinet04_ContBoard 0x0490 // 1168 仓4 #define ADDR_Cabinet05_ContBoard 0x0510 // 1296 仓5 #define ADDR_Cabinet06_ContBoard 0x0530 // 1328 仓6 #define ADDR_Cabinet07_ContBoard 0x0550 // 1360 仓7 #define ADDR_Cabinet08_ContBoard 0x0570 // 1392 仓8 #define ADDR_AuthorizeCode 0x0590 // 1424 8仓,每仓4字节 授权解封密码 #define ADDR_Is_In_ElecFence 0x05D0 // 1488 车是否在电子围栏内 #define ADDR_TankCapacity_Table 0x05D4 // 1492 200cm高度,200个u16数据 罐容表标定 #define ADDR_Auto_sealedOK_ID 0x0764 // 1892 原控制板兼容地址 #define ADDR_Break_sealing_Id 0x0768 // 1896 原控制板兼容地址 #define ADDR_Config_fun_id 0x076C // 1900 原控制板兼容地址 #define ADDR_Auto_Seal_Time 0x0770 // 1904 原控制板兼容地址 #define ADDR_Baseval_ID 0x0774 // 1908 原控制板兼容地址 #define ADDR_StoreNumber 0x0778 // 1912 原控制板兼容地址 #define ADDR_ManHole_Big_info 0x077C // 1916 原控制板兼容地址 #define ADDR_ManHole_small_info 0x0780 // 1920 原控制板兼容地址 #define ADDR_Dump_info 0x0784 // 1924 原控制板兼容地址 #define ADDR_Foot_info 0x0788 // 1928 原控制板兼容地址 #define ADDR_DebugControll 0x078C // 1932 调试信息控制 #define ADDR_TotalRunTime 0x0794 // 1940 累计运行时间计数器 #define ADDR_State_ElecSeal_FSM 0x0798 // 1944 基于状态机的电子铅封状态 #define ADDR_SW_Voice_Printer 0x07A0 // 1952 是否开启打印机,语音播报-----每个bit表示一个外设;4个字节,最多支持32个外接设备 #define ADDR_Enable_BlankSeal 0x07A4 // 1956 是否允许空仓施封 #define ADDR_Enable_DispSysInfo 0x07A8 // 1960 是否允许显示系统信息等 #define ADDR_Sensor_Scan_FRAM 0x07f4 // 2036 是否允许显示系统信息等 //add boly 20221021 #define IDEX_ADDR_JT808_DataBack 0x0941 // 2369 控制板 平台确定808-串口透传的传感器数据上报 //end boly //以下参数不用保存在FRAM中,地址跟实际的存储地址无关联,仅用于功能跳转 --开启液位传感器,压力传感器,断电保存,两边有油算法,允许重复施封,液晶类型,保留字,自动施封 #define ADDR_Enable_ReSeal 0x4000 // 16384 是否允许显示系统信息等 //////最高地址不大于0x07ff=2047 #define ADDR_Sw_VoicePlay 0x8000 //切换语音播报功能 #define ADDR_Sw_ValveRaw 0x8001 ////切换阀门的原始数据或者汉字数据 //新增密码存储地址 //-----按键功能码 #define DebugFun_LCD_Version 90004 // 1920 版本信息 #define DebugFun_LCD_SleepTime 90002 // LCD 休眠时间 #define DebugFun_DS1302Time 90003 // 1928 显示DS1302时间 #define DebugFun_CarLicensePlate 90068 // 显示车牌号 #define DebugFun_CarLicensePlate1 90005 // 显示车牌号 #define DebugFun__Restart_ContBoard00 90523 //立即重启 #define DebugFun__Restart_ContBoard01 90524 //可以取消的重启 #define DebugFun_VersionOf_Software 90544 //软件版本号 //强制清除各仓的显示信息,避免乱码无法消除----因为正常只有39字符,原始数字较长,所以后边有残余 #define DebugFun_Clear_Valve_Info 99997 #define DebugFun_Show_product_ID 99998 //显示产品ID #define DebugFun_Show_Terminal 99999 //显示来自终端的命令信息 #define DebugFun_Sw_VoicePlay 98000 //切换语音播报功能 #define DebugFun_Sw_ValveRaw 98001 //切换阀门的原始数据或者汉字数据 #define DebugFun_Sw_DisplaySensorData 98002 //切换是否显示模拟量类的传感器数据 flag_Sw_DisplaySensorData #define DebugFun_Refresh_Title_IO 98003 //强制刷新一次阀门名称显示 #define DebugFun_Sw_DispSysInfo 98004 //是否实时显示系统运行信息等 #define DebugFun_Disp_Valve_Info_Bit 98005 //在1仓的位置显示老协议的阀门信息,每个bit表示一个阀门状态,帧标志为0xA1 #define DebugFun_Set_Cang_NUM01 98101 //手动设定为1仓1阀门 #define DebugFun_Set_Cang_NUM02 98102 //手动设定为2仓2阀门 #define DebugFun_Set_Cang_NUM03 98103 //手动设定为3仓3阀门 #define DebugFun_Set_Cang_NUM04 98104 //手动设定为4仓4阀门 #define DebugFun_Set_Cang_NUM05 98105 //手动设定为5仓5阀门 #define DebugFun_Set_Cang_NUM06 98106 //手动设定为6仓6阀门 #define DebugFun_Set_Cang_NUM07 98107 //手动设定为7仓7阀门 #define DebugFun_Set_Cang_NUM08 98108 //手动设定为8仓8阀门 #define DebugFun_Set_BlankSeal_Enable 98109 //手动设定空仓允许施封 #define DebugFun_Set_BlankSeal_Disable 98110 //手动设定空仓禁止施封 #define DebugFun_Set_Cang_NUM01_Seal 98111 //手动强制施封1仓 #define DebugFun_Set_Cang_NUM02_Seal 98112 //手动强制施封2仓 #define DebugFun_Set_Cang_NUM03_Seal 98113 //手动强制施封3仓 #define DebugFun_Set_Cang_NUM04_Seal 98114 //手动强制施封4仓 #define DebugFun_Set_Cang_NUM05_Seal 98115 //手动强制施封5仓 #define DebugFun_Set_Cang_NUM06_Seal 98116 //手动强制施封6仓 #define DebugFun_Set_Cang_NUM07_Seal 98117 //手动强制施封7仓 #define DebugFun_Set_Cang_NUM08_Seal 98118 //手动强制施封8仓 #define DebugFun_Set_Cang_NUM01_Broken 98121 //手动强制破封1仓 #define DebugFun_Set_Cang_NUM02_Broken 98122 //手动强制破封2仓 #define DebugFun_Set_Cang_NUM03_Broken 98123 //手动强制破封3仓 #define DebugFun_Set_Cang_NUM04_Broken 98124 //手动强制破封4仓 #define DebugFun_Set_Cang_NUM05_Broken 98125 //手动强制破封5仓 #define DebugFun_Set_Cang_NUM06_Broken 98126 //手动强制破封6仓 #define DebugFun_Set_Cang_NUM07_Broken 98127 //手动强制破封7仓 #define DebugFun_Set_Cang_NUM08_Broken 98128 //手动强制破封8仓 #define DebugFun_Set_Cang_NUM01_JieFeng 98131 //手动强制解封1仓 #define DebugFun_Set_Cang_NUM02_JieFeng 98132 //手动强制解封2仓 #define DebugFun_Set_Cang_NUM03_JieFeng 98133 //手动强制解封3仓 #define DebugFun_Set_Cang_NUM04_JieFeng 98134 //手动强制解封4仓 #define DebugFun_Set_Cang_NUM05_JieFeng 98135 //手动强制解封5仓 #define DebugFun_Set_Cang_NUM06_JieFeng 98136 //手动强制解封6仓 #define DebugFun_Set_Cang_NUM07_JieFeng 98137 //手动强制解封7仓 #define DebugFun_Set_Cang_NUM08_JieFeng 98138 //手动强制解封8仓 #define DebugFun_Set_Enable_ReSeal 98139 // 允许重复施封 #define DebugFun_Set_Disable_ReSeal 98140 // #define DebugFun_SW_ExpansionRatio 80228 //显示8仓的膨胀系数 #define DebugFun_SW_ExtAddr_ControllBoard 80000 //显示控制板的扩展地址 #define DebugFun_SW_ExtAddr_IO_OnOff_Group 80001 //显示分组后的阀门开关状态0x91打包用 #define DebugFun_SW_ExtAddr_IO_Exception_Group 80002 ////显示分组后的阀门异常状态0x91打包用 #define DebugFun_SW_ExtAddr_ControllBoardtmp 80003 //显示控制板的扩展地址 #define DebugFun_SW_ValveState_PoFeng0x13 80004 //显示破封时的阀门状态 #define DebugFun_SW_ValveState_PoFeng0x20 80005 //显示破封时的阀门状态 #define DebugFun_Show_Sensor001 91001 //显示地址为001的传感器的状态 #define DebugFun_Show_Sensor002 91002 #define DebugFun_Show_Sensor003 91003 #define DebugFun_Show_Sensor004 91004 #define DebugFun_Show_Sensor005 91005 #define DebugFun_Show_Sensor006 91006 #define DebugFun_Show_Sensor007 91007 #define DebugFun_Show_Sensor008 91008 #define DebugFun_Show_Sensor009 91009 #define DebugFun_Show_Sensor010 91010 #define DebugFun_Show_Sensor011 91011 #define DebugFun_Show_Sensor012 91012 #define DebugFun_Show_Sensor013 91013 #define DebugFun_Show_Sensor014 91014 #define DebugFun_Show_Sensor015 91015 #define DebugFun_Show_Sensor016 91016 //李伟修改 20200209 空气温度修正为实际油品温度 #define SCL_Air_To_Oil (1.000001f) //李伟修改 20200210 同龚经理商定后 当温度超过10度之后直接加上49℃ #define Offset_diesel (49.001f) #define SCL_Factor_petrol ((float)0.12) //汽油的膨胀系数 0817车为汽油 //运输的油品的最大可能的温度---已经观察到的可以的达到65度 #define Max_Oil_Tempe ((float)120.01) //运输的油品的最大可能的温度---已经观察到的可以的达到65度 #define Max_Oil_Height ((float)2.54321) //运输的油品的最低可能的温度---极限低温为-60.01 #define Min_Oil_Tempe ((float)-60.01) //控制器显示的数据源;0x00表示本机数据;0x01表示显示服务器下发的数据 #define DWIN_Display_Source 0x00 #define Key_F1 0x1b #define Key_F2 0x02 #define Key_F3 0x03 #define Key_F4 0x06 #define Key_00 0x30 #define Key_01 0x31 #define Key_02 0x32 #define Key_03 0x33 #define Key_04 0x34 #define Key_05 0x35 #define Key_06 0x36 #define Key_07 0x37 #define Key_08 0x38 #define Key_09 0x39 #define Key_CLR 0x7f #define Key_POT 0x2e //功能码 #define FrameHeader_Collect 0xAA #define EquipmentNum_Collect 0x00 #define ValveState_Fuction 0x01 #define SensorValue_Function 0x02 #define WriteStore_Function 0x03 #define PlatformCal_Function 0x04 #define PlatformRestartCllect 0x05 #define PlatformSetOilStyle 0x06//新增 #define PlatformExceptionHandling 0x07//新增 #define FrameHeader_Collect02 0x39 #define EquipmentNum_Collect02 0x01 #define ValveState_Fuction02 0x01 #define SensorValue_Function02 0x02 #define WriteStore_Function02 0x03 #define PlatformCal_Function02 0x04 #define PlatformRestartCllect02 0x05 #define PlatformSetOilStyle02 0x06//新增 #define PlatformExceptionHandling02 0x07//新增 #define Collector_Reset 0x0010 //采集器复位 #define Collector_Get_Valve_State 0x0020 //0x3901标定命令的功能码 读取阀门状态 #define Collector_Get_Sensor_State 0x0027 //3. 读取某仓阀门之外传感器数据 #define Collector_Set_XieYouFa_Closed 0x0050 //4. 卸油阀标定为关 #define Collector_Set_XieYouFa_MenXian 0x0051 //5. 设置卸油阀门限 #define Collector_Set_RenKongGai_Zero 0x0052 //6. 人孔盖传感器置零 #define Collector_GetSensor_From485Addr 0x0055 //7. 读取液位温度传感器数据(模拟量类的) ----需要指定485地址 #define Collector_Set_RenKongGai_MenXian 0x0072 //8. 设置人孔盖门限 #define Collector_Set_PanDuanCiShu 0x0073 //9. 设置传感器判断次数(主要是人孔盖) #define Collector_Set_CangFaMen_Num 0x0074 //10. 设置采集器参数—仓数,每仓阀门数量 #define Collector_Set_RenKongGai_Num 0x0075 //11. 设置人孔盖种类数量----实际就是人孔大盖数量 #define Collector_Set_XieYouFa_Num 0x0076 //12. 设置卸油阀种类数量 #define Collector_Set_HaiDiFa_Num 0x0077 //13. 设置海底阀种类数量 #define Collector_Get_Wendu_Data 0x0121 //从采集板读取温度数据---8仓数据,float类型有效32字节 李伟修改20210928 #define Collector_Get_Yewei_Data 0x0122 //从采集板读取液位数据---8仓数据,float类型有效32字节 李伟修改20210928 //从采集板一次性读取读取温度、液位数据、体积、压力等---8仓数据,float类型有效 //16字节帧头 //液位,平均温度,温度1,温度2,温度3,Vt,压力,参数1,参数2,参数3.。。。,参数N共11个。 //前16字节为固定帧头,接下来8字节为保留待扩展,接下来8个参数32字节为整车模拟量信息(倾角、速度等), //最后为4仓的模拟量参数与校验信息。总长度:16+8+32+4*4*11+4=236字节。 #define Collector_Get_WenduYewei_Data_1to4 0x1121 //1--4仓数据 #define Collector_Get_WenduYewei_Data_5to8 0x1122 //5--8仓数据 #define Collector_Get_All_Sensor_Data_Cang01 0x1193 //传送1仓所有传感器命令,每个传感器4字节,不区分IO类或者模拟量类,详见《淡仓数据传输协议》 #define Collector_Get_All_Sensor_Data_Cang02 0x1194 //传送2仓所有传感器命令 #define Collector_Get_All_Sensor_Data_Cang03 0x1195 //传送3仓所有传感器命令 #define Collector_Get_All_Sensor_Data_Cang04 0x1196 //传送4仓所有传感器命令 #define Collector_Get_All_Sensor_Data_Cang05 0x1197 //传送5仓所有传感器命令 #define Collector_Get_All_Sensor_Data_Cang06 0x1198 //传送6仓所有传感器命令 #define Collector_Get_All_Sensor_Data_Cang07 0x1199 //传送7仓所有传感器命令 #define Collector_Get_All_Sensor_Data_Cang08 0x119A //传送8仓所有传感器命令 #define Collector_Get_All_Sensor_Data_WholeCar 0x119B //传送8仓所有传感器命令 #define Collector_Get_Valve_OldFormat 0x0013 //14. 读取运算后的阀门状态,兼容之前的阀门协议,每个bit表示一个状态 #define Get_IO_State_New64Byte 0x20//20210712新增 获取每个仓位的阀门状态 #define SetPara_Yewei_Offset 0x10//20210122新增 调节液位传感器的高度,间隔1s向控制板发送数据 #define GuanRongMenXian 50//当液位高度大于某一门限值强制进行罐容修正 ////////////////////////////////////////////////////////////////////////////////// /*********此处关于设置参数以及参数设置后赋值处理,后续有更合适的方法时配置代码不应在按键串口里(如在终端里配置)**************/ typedef struct //配置的阀门信息 { uint8_t Config_fun_id;//功能配置ID--是否具备液位传感器;压力传感器;有油无油算法;自动施封 uint8_t Collection_id;//采集器ID uint8_t All_number ;//所有的仓数 uint8_t ManHole_Big_info; //人孔盖信息 uint8_t ManHole_small_info; //人孔小盖信息 uint8_t Dump_info; //卸油阀信息 uint8_t HaiDiFa_info; //海底阀信息 uint16_t Auto_Seal_Time; }Config_INFO_TypeDef; extern Config_INFO_TypeDef Config_info_all; extern uint8_t Baseval_ID; extern uint8_t Set_CollectPara_Flag; extern uint16_t FnKey;//=0x0000;//组合键 extern uint8_t Auto_sealedOK_ID_bak; extern float V20_Seal[8],Vt_Seal[8],Ht_Seal[8]; extern float V20_Break[8],Vt_Break[8],Ht_Break[8]; //extern float Vt_Local,V20_Local;//控制器计算的结果或者采集器传来的结果 extern float Vt_Local[8]; extern float V20_Local[8]; //extern float Vt_Local_Disp; //extern float Vt_Disp,V20_Disp; extern float Vt_Disp[8],V20_Disp[8];//[8] extern float ExpansionRatio[8]; extern float Tempe_For_V20[8]; extern float Vt_Local_Disp,V20_Local_Disp; extern uint32_t data_Src_To_Disp; /******************************************END**********************************************************************/ extern uint8_t flag_Seal_Break;//破封标志,按键板破封蜂鸣器响 extern uint16_t Sleep_Timer_cnt3; extern uint16_t tmrForPrinter; extern uint32_t tmrForKeyPad; extern uint32_t tmrForRemoteCali; extern uint32_t tmrForTemp_ManualInput; extern uint8_t dbgArray[8]; extern uint8_t flag_exitReset; extern uint8_t flag_Uart4_Busy; extern uint8_t flag_Sw_VoicePlay; extern uint8_t product_ID[20]; extern uint8_t flag_ShowValveRaw;//是否显示阀门的原始信息00,01等 extern uint8_t flag_Sw_DispSysInfo;//是否显示系统运行信息 extern char PrintBuff[64]; extern uint16_t PrintCnt; extern uint8_t flag_En_BlankSeal; extern int16_t OffsetYewei[8];//offsetLeiDa004; //extern int16_t offsetLeiDa005; extern int16_t OffsetTankCapacity[8];//1仓罐容零点,两字节定时发给采集器 //李伟修改 湖南润安项目 新增传感器与报警信息 extern float AlarmOfTempeThreshold_Upper,AlarmOfTempeThreshold_Lower; extern float AlarmOfPressureThreshold_Upper,AlarmOfPressureThreshold_Lower; extern float AlarmArrayData[11]; extern float BiasOfTempe;//温度修正 extern float PressureWindowsSpan;//压力窗口时长 extern float PressurePositiveThreshold;//压力正偏门限 extern float PressureNegativeThreshold;//压力负偏门限 extern float BiasOfPressure;//压力修正 extern uint32_t AlgType;//算法类型配置 extern uint32_t usart_timeout,usart_timesec; extern uint8_t vt_disp_type; extern char Version_software[30]; extern uint8_t Version_hardware[]; extern uint8_t product_ID[20]; extern uint32_t FunDebugCode; extern uint32_t input_ArrFunDebugCode[5]; extern uint32_t Version_Soft[8]; void TestUsart4_Receive(void); void KeySlave485_Init(uint32_t bound); void KeySlave485_Send_Data(uint8_t *buf,uint8_t len); void KeySlave485_TX_Set(uint8_t en); uint8_t Get_keyvalue(void ); void Mode_key_pageID(void ); void Send_alarm10S(void); //void About_KeyFunction(void); #endif