QuakeGod
2023-02-01 c5764186c3ec23eb954463495b8fbd77e32b268c
Inc/KMachine.h
@@ -49,18 +49,26 @@
#define LoHofB(x) ((x)&0xf)
#define HiHofB(x) (((x)>>4)&0xf)
//  信息块
//  工厂参数配置块
//  用户/系统参数配置块
//  信息块
//  工厂参数配置块
//  用户/系统参数配置块
//  
//
typedef struct tagInfoBlock
{
   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
//   USHORT KNetVer;               //x.y
//   USHORT KWLVer;               //x.y
   UCHAR nCapacity1;            //   ? K
   UCHAR nCapacity2;            //   ? k
   UCHAR nDInput;
   UCHAR nDOutput;
   UCHAR nAInput;
@@ -69,6 +77,12 @@
   UCHAR nHOutput;
   UCHAR nExt1;
   UCHAR nExt2;
   UCHAR nLogSize;
   UCHAR nPorts;
   UCHAR nManSize;
   UCHAR nAbility;
   UCHAR nSwitchBits;
   
}stKMInfoBlock;
@@ -103,26 +117,26 @@
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_Com = 0,   //计算机通讯
   PortType_Gen = 1,   //通用通讯,自由口
   PortType_KLink = 2, //Klink通讯
   PortType_KBus = 3,    //KBus通讯
   PortType_KNet = 4,    // KNet通讯
   PortType_ModbusRTU = 5, //Modbus RTU 通讯
};
//每个模块有 0/1/2/3/4/5/6/7/8个 通讯port
//不限于 UART, 网口,无线,单总线等,都是port
//甚至可以有虚拟的port
//每个模块有 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;
   UCHAR nWorking;         //工作中
   UCHAR nStation;         //自己站号
   UCHAR bBus;               //总线?,,全双工?
   UCHAR bMaster;         //主机
   UCHAR PortType;         //端口工作模式
   UCHAR nDevices;         //连接的设备数量//不包括自己 //device list;
   
}stPortStat,*pPortStat;
@@ -146,11 +160,11 @@
typedef struct tagKMFuncParam
{
   USHORT EnablePLC:1;      //使能内部PLC功能
   USHORT RunMode;            //工作模式
   USHORT EnablePLC:1;      //使能内部PLC功能
   USHORT RunMode;            //工作模式
}stKMFuncParam;
// 输入输出地址映射
// 输入输出地址映射
typedef struct tagComPortParam         //4 Bytes
{
@@ -190,7 +204,7 @@
   USHORT workmode;                           // SC1  // 2 Bytes 0=From jumper  
   USHORT SwitchFunc;                        // SC2  // 2 Bytes 
   
   USHORT OutMappings[6];                              //12 Bytes //输出映射
   USHORT OutMappings[6];                              //12 Bytes //输出映射
   
   stComPortParam PortParams[2];                     // 8 Bytes
   stOutputHoldParam OutputParams[16];            //16 Bytes
@@ -237,7 +251,7 @@
   
}stFactData;
*/
typedef struct tagFactoryData      //工厂量产参数,数据
typedef struct tagFactoryData      //工厂量产参数,数据
{
   USHORT Sign1;
   USHORT Seq1;
@@ -396,12 +410,12 @@
   stTimer Timers[TOTALTIMERS];
   union {
   unsigned short WX[KLDataWXCount];      //本机的X和Y
   unsigned short WX[KLDataWXCount];      //本机的X和Y
   unsigned char WXB[KLDataWXCount*2];   
   };
   union {
   unsigned short WY[KLDataWYCount];      //本机的X和Y
   unsigned char WYB[KLDataWYCount*2];      //本机的X和Y
   unsigned short WY[KLDataWYCount];      //本机的X和Y
   unsigned char WYB[KLDataWYCount*2];      //本机的X和Y
   }; 
   unsigned short WR[KLDataWRCount];
   
@@ -412,7 +426,7 @@
   unsigned short SV[KLDataSVCount];
   
   
   unsigned short WLX[16];      //虚拟的X和Y,远程通讯时映射用。
   unsigned short WLX[16];      //虚拟的X和Y,远程通讯时映射用。
   unsigned short WLY[16];
   unsigned short WLR[16];   
   unsigned short WSR[16];
@@ -423,10 +437,10 @@
   unsigned char DTB[KLDataDTCount*2];
};
   // 配置寄存器
   // 系统状态寄存器
   // 特殊寄存器
   // 调试,监控寄存器
   // 配置寄存器
   // 系统状态寄存器
   // 特殊寄存器
   // 调试,监控寄存器
   union {
      unsigned int SDD[KLDataSDTCount/2];
      unsigned short SDT[KLDataSDTCount];