From 0fe6b074f3f3994d87af195f37e349a83e27882c Mon Sep 17 00:00:00 2001 From: QuakeGod <QuakeGod@sina.com> Date: 星期六, 10 十二月 2022 16:55:40 +0800 Subject: [PATCH] FP0 fix utf8 char --- Inc/KMachine.h | 313 ++++++++++++++++++++++++++++----------------------- 1 files changed, 173 insertions(+), 140 deletions(-) diff --git a/Inc/KMachine.h b/Inc/KMachine.h index 64545c7..15e119e 100644 --- a/Inc/KMachine.h +++ b/Inc/KMachine.h @@ -49,18 +49,24 @@ #define LoHofB(x) ((x)&0xf) #define HiHofB(x) (((x)>>4)&0xf) -// 信息块 -// 工厂参数配置块 -// 用户/系统参数配置块 +// 淇℃伅鍧� +// 宸ュ巶鍙傛暟閰嶇疆鍧� +// 鐢ㄦ埛/绯荤粺鍙傛暟閰嶇疆鍧� // // -typedef struct tagInfoBlock +typedef struct tagInfoBlock // 20 bytes { - USHORT nDeviceType; - USHORT ProgVer; - USHORT KLinkVer; - USHORT nCapacity; +// USHORT nBlockLenth; + USHORT nDeviceTypeVer; //device type x.y +// UCHAR nDevierVer; + USHORT ProgVer; //prog version x.y + USHORT KLinkVer; //x.y + USHORT KBusVer; //x.y + + UCHAR nCapacity1; // ? K + UCHAR nCapacity2; // ? k + UCHAR nDInput; UCHAR nDOutput; UCHAR nAInput; @@ -69,8 +75,47 @@ UCHAR nHOutput; UCHAR nExt1; UCHAR nExt2; + UCHAR nLogSize; + UCHAR nPorts; + UCHAR nManSize; + UCHAR nAbility; + UCHAR nSwitchBits; }stKMInfoBlock; + +/* +typedef struct tagFactData +{ + USHORT Sign; // + USHORT nLength; // + UCHAR LOT_NO[16]; // + UINT MANDate; // + UINT SN; // + UINT REV1[24]; // + USHORT rev9; + USHORT CRC; + +}stFactData; +*/ +typedef struct tagFactoryData //宸ュ巶閲忎骇鍙傛暟锛屾暟鎹� +{ + USHORT Sign1; + USHORT Seq1; + USHORT nModelNo; + USHORT nModelVer; + UINT nLotNo; + UINT nProductDateTime; + UINT SN1; + UINT nProtocalVer; + UINT nDefaultFunc; + UCHAR ModelStr[16]; + UCHAR LOT_NO[16]; // + UCHAR SNStr[16]; + unsigned short CRC1; + unsigned short EndSign1; + +}stFactoryData,* pFactoryData; + enum enStoreCfg { @@ -78,7 +123,6 @@ START_SIGN = 0x55aa, END_SIGN = 0x5aa5, }; - enum enInputFilter { @@ -101,74 +145,66 @@ Output_Set_1 = 2, }; +typedef struct tagPortStatus +{ + USHORT porttype; //232,485,net , wireless// KLink, KBus, KNet, KWireless + UCHAR StationID; + UCHAR MaxStations; + UCHAR CurStations; + UCHAR Running; + UCHAR Health; +}; + enum enPortType { - PortType_Com = 0, //计算机通讯 - PortType_Gen = 1, //通用通讯,自由口 - PortType_KLink = 2, //Klink通讯 - PortType_KBus = 3, //KBus通讯 - PortType_KNet = 4, // KNet通讯 - PortType_ModbusRTU = 5, //Modbus RTU 通讯 + PortType_Default = 0, //榛樿 + PortType_KLink = 1, //KLink閫氳 + PortType_KBus = 2, //KBus閫氳 + PortType_KNet = 3, // KNet閫氳 + PortType_ModbusRTU = 4, //Modbus RTU 閫氳 + PortType_Com = 5, // 璁$畻鏈洪�氳 + PortType_Gen = 6, //閫氱敤閫氳锛岃嚜鐢卞彛 }; - -//每个模块有 0/1/2/3/4/5/6/7/8个 通讯port -//不限于 UART, 网口,无线,单总线等,都是port -//甚至可以有虚拟的port - -typedef struct tagPortStat -{ - UCHAR nWorking; //工作中 - UCHAR nStation; //自己站号 - UCHAR bBus; //总线?,,全双工? - UCHAR bMaster; //主机 - UCHAR PortType; //端口工作模式 - UCHAR nDevices; //连接的设备数量//不包括自己 //device list; - -}stPortStat,*pPortStat; - -enum enKeventType -{ - EventTypeNone = 0, - EventTypePowerUp = 1, - EventTypePowerDown = 2, - EventTypePowerRecover = 3, - EventTypeConnected = 4, - EventTypeLostCon = 5, - EventTypeSetTime = 6, - EventTypeSysCfg = 7, - EventTypeProg = 8, - EventTypeForce = 9, - EventTypeClearEvent = 10, - - - EventType -}; - -typedef struct tagKMFuncParam -{ - USHORT EnablePLC:1; //使能内部PLC功能 - USHORT RunMode; //工作模式 -}stKMFuncParam; - -// 输入输出地址映射 typedef struct tagComPortParam //4 Bytes { + USHORT WorkMode; /* 0-5=Default,KLink,KBus,KNet,RTU,Com,Gen */ USHORT Station; /* 0=From jumper */ - USHORT WorkMode; /* 0-5=Com,Gen,KLink,KBus,KNet,RTU */ USHORT BaudRate; /* =*100 Baudrate at which running */ -// USHORT PortType:4; /* 0-5=Com,Gen,KLink,KBus,KNet,RTU */ USHORT ByteSize:2; /* 0-1=Number of bits/byte, 7-8 */ USHORT Parity:4; /* 0-4=None,Odd,Even,Mark,Space */ USHORT StopBits:2; /* 0,1,2 = 1, 1.5, 2 */ USHORT EndType:2; /* 0=ByChar, 1= ByTime */ USHORT EofChar:4; /* 0,1,2 = None, CR, CR+LF, ETX; End of character */ USHORT SofChar:2; /* 0,1,2 = None, STX */ - USHORT EndTime; + USHORT EndTime; /*(*0.01mS) */ USHORT RecvAddr; USHORT RecvSize; + +}stComPortParam, *pstComPortParam; + +//姣忎釜妯″潡鏈� 0/1/2/3/4/5/6/7/8涓� 閫氳port +//涓嶉檺浜� UART, 缃戝彛锛屾棤绾匡紝鍗曟�荤嚎绛夛紝閮芥槸port +//鐢氳嚦鍙互鏈夎櫄鎷熺殑port + +typedef struct tagPortStat +{ + UCHAR PortType; //绔彛宸ヤ綔妯″紡 + UCHAR nStation; //鑷繁绔欏彿 + UCHAR bWorking; //宸ヤ綔涓� + UCHAR bBus; //鎬荤嚎?,,鍏ㄥ弻宸�? + UCHAR bMaster; //涓绘満 + UCHAR nDevices; //杩炴帴鐨勮澶囨暟閲�//涓嶅寘鎷嚜宸� //device list; -}stComPortParam; +}stPortStat,*pPortStat; + +typedef struct tagKMFuncParam +{ + USHORT EnablePLC:1; //浣胯兘鍐呴儴PLC鍔熻兘 + USHORT RunMode; //宸ヤ綔妯″紡 +}stKMFuncParam; + +// 杈撳叆杈撳嚭鍦板潃鏄犲皠 typedef struct tagInputFilterParam // 1 Bytes { @@ -189,12 +225,12 @@ USHORT Version; // SC0 // 2 Bytes USHORT workmode; // SC1 // 2 Bytes 0=From jumper USHORT SwitchFunc; // SC2 // 2 Bytes - - USHORT OutMappings[6]; //12 Bytes //输出映射 + USHORT pad1; // 2 Bytes stComPortParam PortParams[2]; // 8 Bytes - stOutputHoldParam OutputParams[16]; //16 Bytes stInputFilterParam InputParams[16]; //16 Bytes + stOutputHoldParam OutputParams[16]; //16 Bytes + USHORT OutMappings[6]; //12 Bytes //杈撳嚭鏄犲皠 UINT cfgvar3; // 4 Bytes UINT cfgvar4; // 4 Bytes @@ -206,11 +242,11 @@ UINT cfgvar10; // 4 Bytes UINT cfgvar11; // 4 Bytes UINT cfgvar12; // 4 Bytes - UINT cfgvar13; // 4 Bytes - UINT cfgvar14; // 4 Bytes - UINT cfgvar15; // 4 Bytes - UINT cfgvar16; // 4 Bytes - UINT Space1[5]; //20 Bytes +// UINT cfgvar13; // 4 Bytes +// UINT cfgvar14; // 4 Bytes +// UINT cfgvar15; // 4 Bytes +// UINT cfgvar16; // 4 Bytes +// UINT Space1[4]; //16 Bytes }stKMSysCfg,* pKMSysCfg; @@ -223,39 +259,23 @@ unsigned short EndSign1; }stStoredKMSysCfg,*pStoredKMSysCfg; - -/* -typedef struct tagFactData +enum enKeventType { - USHORT Sign; // - USHORT nLength; // - UCHAR LOT_NO[16]; // - UINT MANDate; // - UINT SN; // - UINT REV1[24]; // - USHORT rev9; - USHORT CRC; + EventTypeNone = 0, + EventTypePowerUp = 1, + EventTypePowerDown = 2, + EventTypePowerRecover = 3, + EventTypeConnected = 4, + EventTypeLostCon = 5, + EventTypeSetTime = 6, + EventTypeSysCfg = 7, + EventTypeProg = 8, + EventTypeForce = 9, + EventTypeClearEvent = 10, -}stFactData; -*/ -typedef struct tagFactoryData //工厂量产参数,数据 -{ - USHORT Sign1; - USHORT Seq1; - USHORT nModelNo; - USHORT nModelVer; - UINT nLotNo; - UINT nProductDateTime; - UINT SN1; - UINT nProtocalVer; - UINT nDefaultFunc; - UCHAR ModelStr[16]; - UCHAR LOT_NO[16]; // - UCHAR SNStr[16]; - unsigned short CRC1; - unsigned short EndSign1; -}stFactoryData,* pFactoryData; + EventType +}; typedef struct tagEventLog { @@ -279,7 +299,8 @@ volatile unsigned short WorkMode2; volatile unsigned short nBinProgBank; volatile unsigned short nBinProgSize; - unsigned int Reserved2[1]; + unsigned short bLEDFlick; + unsigned short Reserved2[1]; unsigned short CRC1; unsigned short EndSign1; }stRunStat, *pRunStat; @@ -325,40 +346,11 @@ KLDataTypeLD = 13 | TYPEDATA, KLDataSysCfg = 25 | TYPEDATA, KLDataTypeFlash = 33 | TYPEDATA, + KLDataTypeWDT = 41 | TYPEDATA, + KLDataTypeKBD = 51 | TYPEDATA, KLDataTypeTest = 254 | TYPEDATA, }; -enum enKLDataCounts - { - KLDataDTCount = 256, - KLDataSDTCount = 256, - - KLDataWXCount = 16, - KLDataWYCount = 16, - KLDataWRCount = 16, - KLDataLDCount = 64, - KLDataWLCount = 8, - - KLCoilXCount = KLDataWXCount * 16, - KLCoilYCount = KLDataWYCount * 16, - KLCoilRCount = KLDataWRCount * 16, - - KLCoilTCount = 64, - KLCoilCCount = KLCoilTCount, - - KLDataSVCount = KLCoilTCount, - KLDataEVCount = KLCoilTCount, - - KLCoilLXCount = 128, - KLCoilLYCount = 128, - KLCoilLRCount = 128, - KLCoilSRCount = 128, - - }; -#define TOTAL_WDFS (16) //Total DF Count -#define TOTAL_CurVAL (16) // -#define TOTALTIMERS (64) - typedef struct tagTimerStat { unsigned short nScale:2;//Time Scale, 0:1ms 1:10ms 2:100ms 3:1S @@ -389,6 +381,40 @@ }; }stTimer; +#define TOTAL_WDFS (32) //Total DF Count +#define TOTAL_CurVAL (16) // +#define TOTALTIMERS (64) + +enum enKLDataCounts + { + + KLDataWXCount = 16, + KLDataWYCount = 16, + KLDataWRCount = 16, + KLDataLDCount = 64, + KLDataWLCount = 8, + + KLCoilXCount = KLDataWXCount * 16, + KLCoilYCount = KLDataWYCount * 16, + KLCoilRCount = KLDataWRCount * 16, + + KLCoilTCount = 64, + KLCoilCCount = KLCoilTCount, + + KLDataSVCount = KLCoilTCount, + KLDataEVCount = KLCoilTCount, + + KLCoilLXCount = 128, + KLCoilLYCount = 128, + KLCoilLRCount = 128, + KLCoilSRCount = 128, + + KLDataDTCount = 128, + KLDataSDTCount = 128, + KLDataWDTCount = 128, + + }; + typedef struct tagKMem { unsigned short WDFs[TOTAL_WDFS]; @@ -397,12 +423,12 @@ stTimer Timers[TOTALTIMERS]; union { - unsigned short WX[KLDataWXCount]; //本机的X和Y + unsigned short WX[KLDataWXCount]; //鏈満鐨刋鍜孻 unsigned char WXB[KLDataWXCount*2]; }; union { - unsigned short WY[KLDataWYCount]; //本机的X和Y - unsigned char WYB[KLDataWYCount*2]; //本机的X和Y + unsigned short WY[KLDataWYCount]; //鏈満鐨刋鍜孻 + unsigned char WYB[KLDataWYCount*2]; //鏈満鐨刋鍜孻 }; unsigned short WR[KLDataWRCount]; @@ -413,21 +439,21 @@ unsigned short SV[KLDataSVCount]; - unsigned short WLX[16]; //虚拟的X和Y,远程通讯时映射用。 + unsigned short WLX[16]; //铏氭嫙鐨刋鍜孻锛岃繙绋嬮�氳鏃舵槧灏勭敤銆� unsigned short WLY[16]; unsigned short WLR[16]; unsigned short WSR[16]; union { - unsigned int DTD[KLDataDTCount]; + unsigned int DTD[KLDataDTCount/2]; unsigned short DT[KLDataDTCount]; unsigned char DTB[KLDataDTCount*2]; -}; +}; - // 配置寄存器 - // 系统状态寄存器 - // 特殊寄存器 - // 调试,监控寄存器 + // 閰嶇疆瀵勫瓨鍣� + // 绯荤粺鐘舵�佸瘎瀛樺櫒 + // 鐗规畩瀵勫瓨鍣� + union { unsigned int SDD[KLDataSDTCount/2]; unsigned short SDT[KLDataSDTCount]; @@ -456,6 +482,13 @@ unsigned short ADCValues[20]; }; }; + // 璋冭瘯锛岀洃鎺у瘎瀛樺櫒 + union { + unsigned int WDD[KLDataWDTCount/2]; + unsigned short WDT[KLDataWDTCount]; + unsigned char WDB[KLDataWDTCount*2]; + }; + }stKMem; -- Gitblit v1.9.1