#ifndef __OPERATOR_H__ #define __OPERATOR_H__ #include "config.h" #include "comm.h" //------------------------------------------------------------------------ //------------------------------------------------------------------------ /* 通讯命令一览表 1. 上位机发送命令 名称 符号 代码 类型 回复 说明 读取机器信息 UCMD_GET_MC_INFO 0x0001 FLDP 有 机器信息包括机器种类,配置,控制系统版本等信息 读取机器状态 UCMD_GET_MC_STATUS 0x0002 FLDP 有 读取机器的运行状态,包括机器工作状态,常用输入状态,电机位置,工作进度,文件信息等。 读取机器参数 UCMD_GET_MC_PARAS 0x0003 FLDP 有 读取内存中机器参数列表 读取内存数据 UCMD_GET_MEM_DATA 0x0004 FLDP 有 读取机器存储器数据,包括片内SRAM,片外SRAM,NAND FLASH等的内容 读取传感信号 UCMD_GET_SENSORS 0x0005 FLDP 有 读取IO信号状态及电机位置,编码器位置等信息 读取文件信息 UCMD_GET_FILE_INFO 0x0006 FLDP 有 读取数据文件的信息 读取传输结果 UCMD_GET_TRANS_RESULT 0x0007 FLDP 有 读取文件传输的结果位图,包括数据文件和升级文件 设置机器配置 UCMD_SET_MC_CONFIG 0x0101 VLDP 无 设置机器的配置,包括信号使用的端口等信息 设置机器状态 UCMD_SET_MC_STATUS 0x0102 FLDP 无 设置机器的工作状态,包括是否允许工作,清除报警等。 设置机器参数 UCMD_SET_MC_PARAS 0x0103 VLDP 无 传输机器参数列表到下位机 设置内存数据 UCMD_SET_MEM_DATA 0x0104 FLDP 无 改变某个内存单元的数据内容== 手动控制命令 UCMD_ACT_BYHAND 0x0201 FLDP 无 手动控制电机转动,OUTPUT信号开关等动作 机器工作命令 UCMD_MC_WORK 0x0202 FLDP 无 控制机器的工作命令,包括启动,停止,结束,或运动到某个位置等 移动XY命令 UCMD_MOVE_TO 0x0203 FLDP 无 移动XY到坐标 启动文件传输 UCMD_START_TRANS 0x0301 VLDP 无 启动文件传输 文件传输命令 UCMD_TRANS_FILE_DATA 0x0302 VLDP 无 传输文件数据包 下位机升级 UCMD_MC_UPDATE 0x0401 VLDP 无 升级主控 遍历命令 UCMD_TRA_BOARD 0x0501 FLDP 无 遍历总线中某种协议类型的节点 2. 下位机发送命令 名称 符号 代码 类型 回复 说明 发送机器信息 DCMD_SEND_MC_INFO 0x8001 VLDP 无 发送机器信息包括机器种类,配置,控制系统版本等信息 发送机器状态 DCMD_SEND_MC_STATUS 0x8002 VLDP 无 发送取机器的运行状态,包括机器工作状态,常用输入状态,电机位置,工作进度,文件信息等。 发送机器参数 DCMD_SEND_MC_PARAS 0x8003 VLDP 无 发送内存中机器参数列表 发送内存数据 DCMD_SEND_MEM_DATA 0x8004 VLDP 无 发送机器存储器数据,包括片内SRAM,片外SRAM,NAND FLASH等的内容 发送传感信号 DCMD_SEND_SENSORS 0x8005 VLDP 无 发送IO信号状态及电机位置,编码器位置等信息 发送文件信息 DCMD_SEND_FILE_INFO 0x8006 VLDP 无 发送数据文件的信息 发送传输结果 DCMD_SEND_TRANS_RESULT 0x8007 VLDP 无 发送文件传输的结果位图 */ // 上位机发送命令 #define UCMD_GET_MC_INFO 0x0001 // 读取机器信息 #define UCMD_GET_MC_STATUS 0x0002 // 读取机器状态 #define UCMD_GET_MC_PARAS 0x0003 // 读取机器参数 #define UCMD_GET_MEM_DATA 0x0004 // 读取内存数据 #define UCMD_GET_SENSORS 0x0005 // 读取传感信号 #define UCMD_GET_FILE_INFO 0x0006 // 读取文件信息 #define UCMD_GET_TRANS_RESULT 0x0007 // 读取传输结果 #define UCMD_GET_SENSORS_BMP 0x0008 // 读取有效传感器位图 #define UCMD_GET_BOARD_VER 0x000A // 读取外围板程序版本 #define UCMD_GET_HEAD_PARA 0x000B // 读取机头板参数 #define UCMD_GET_COLOR_PARA 0x000C // 读取换色控制板参数 #define UCMD_GET_HEAD_NVPARAS 0x000D // 选择性读取机头参数 #define UCMD_SET_MC_CONFIG 0x0101 // 设置机器配置 #define UCMD_SET_MC_STATUS 0x0102 // 设置机器状态 #define UCMD_SET_MC_PARAS 0x0103 // 设置机器参数 #define UCMD_SET_MEM_DATA 0x0104 // 设置内存数据 #define UCMD_SET_FILE_PARAS 0x0105 // 设置文件参数 #define UCMD_SET_EXEC_PROGRESS 0x0106 // 设置执行进度 #define UCMD_SET_INSTALLMENT 0x0107 // 设置分期密码 #define UCMD_SET_ELAPSED_TIME 0x0108 // 设置经过的时间 #define UCMD_SET_DEF_PARA 0x0109 // 设置默认参数 #define UCMD_SET_HEADDEF_PARA 0x010A // 设置机头板默认参数 #define UCMD_SET_HEAD_PARA 0x010B // 设置机头板参数 #define UCMD_SET_COLOR_PARA 0x010C // 设置换色控制板参数 #define UCMD_SET_MVANGDEF_PARA 0x010D // 设置动框角度默认参数 #define UCMD_SET_COLORDEF_PARA 0x010E // 设置换色板默认参数 #define UCMD_SET_FILE_EXDATA 0x010F // 设置文件扩展数据 #define UCMD_SET_HEAD_NVPARA 0x0110 // 选择性设置机头参数 #define UCMD_ACT_BYHAND 0x0201 // 手动控制命令 #define UCMD_MC_WORK 0x0202 // 机器工作命令 #define UCMD_MOVE_TO 0x0203 // 移动XY到坐标 #define UCMD_MOVE_OFST 0x0205 // XY移动偏移量 #define UCMD_START_TRANS 0x0301 // 启动文件传输 #define UCMD_TRANS_FILE_DATA 0x0302 // 文件传输命令 #define UCMD_INVALID_FILE 0x0303 // 文件失效命令 #define UCMD_SET_FILE_LIST 0x0304 // 设置文件列表 #define UCMD_GET_FILE_LIST 0x0305 // 获取下位机文件列表 #define UCMD_MC_UPDATE 0x0401 // 下位机升级 #define UCMD_BOARD_UPDATE 0x0402 // 外围板升级 #define UCMD_TRA_BOARD 0x0501 // 遍历命令 // 下位机发送命令 #define DCMD_REQUEST_DAT 0x8000 // 请求文件数据 #define DCMD_SEND_MC_INFO 0x8001 // 发送机器信息 #define DCMD_SEND_MC_STATUS 0x8002 // 发送机器状态 #define DCMD_SEND_MC_PARAS 0x8003 // 发送机器参数 #define DCMD_SEND_MEM_DATA 0x8004 // 发送内存数据 #define DCMD_SEND_SENSORS 0x8005 // 发送传感信号 #define DCMD_SEND_FILE_INFO 0x8006 // 发送文件信息 #define DCMD_SEND_TRANS_RESULT 0x8007 // 发送传输结果 #define DCMD_SEND_SENSORS_BMP 0x8008 // 发送有效传感器位图 #define DCMD_SEND_BOARDVER 0x800A // 发送外围板程序版本 #define DCMD_SEND_HEADPARA 0x800B // 发送机头板参数 #define DCMD_SEND_COLORPARA 0x800C // 发送换色控制板参数 #define DCMD_SEND_HEAD_NVPARAS 0x800E // 选择性发送机头参数 #define DCMD_SEND_DEBUG_INFO 0x8010 // 调试信息发送 #define DCMD_SEND_FILE_LIST 0x8011 // 发送下位机文件列表 //------------------------------------------------------------------------ // 命令详解 //------------------------------------------------------------------------ // 读取机器信息 #ifdef UCMD_GET_MC_INFO // 机器信息结构定义 #endif //------------------------------------------------------------------------ // 读取机器状态 #ifdef UCMD_GET_MC_STATUS /* |-------------------------------------------------------------------| |-------------------------------------------------------------------| | B10 B11 | B12 B13 | 附加数据 | |-------------------------------------------------------------------| | 命令切换标志字 | 保留 | 附加数据 | |-------------------------------------------------------------------| | | | | | | | | | | |-------------------------------------------------------------------| |-------------------------------------------------------------------| */ // 附加数据结构定义 // 机器信息结构定义 typedef struct { // 0 char fpgaHardVerStr[16]; // FPGA硬件版本 char fpgaSoftVerStr[16]; // FPGA软件版本 char softwareVerStr[48]; // 软件版本 char buildInfoStr[32]; // 编译日期信息 char boardId[32]; // 板卡ID char installment[32]; // 最后一次的分期密码字符串 // 176 char rev1[512-176]; // 512 u32 localIP; // 板卡IP地址 u32 submask; // 子网掩码 u32 gateIP; // 网关IP // 524 u8 rev2[1024-524]; } __attribute__ ((packed)) MCInfo; //------------------------------------------------------------------------------- #endif //------------------------------------------------------------------------ // 读取机器参数 #ifdef UCMD_GET_MC_PARAS #endif //------------------------------------------------------------------------ //------------------------------------------------------------------------ // 读取传感信号 #ifdef UCMD_GET_SENSORS #endif //------------------------------------------------------------------------ // 读取文件信息 #ifdef UCMD_GET_FILE_INFO #endif //------------------------------------------------------------------------ // 读取传输结果 #ifdef UCMD_GET_TRANS_RESULT #endif //------------------------------------------------------------------------ // 设置机器配置 #ifdef UCMD_SET_MC_CONFIG #endif //------------------------------------------------------------------------ // 设置机器状态 #ifdef UCMD_SET_MC_STATUS #define MC_STA_CLENA_ERR 0x0000 // 清除错误 #define MC_STA_EN_WORK 0x0001 // 允许工作(状态) #define MC_STA_DIS_WORK 0x0002 // 禁止工作(状态) #define MC_STA_EN_TIME 0x0003 // 允许工作(时间) #define MC_STA_DIS_TIME 0x0004 // 禁止工作(时间) #define MC_CLEAN_COUNT 0x0005 // 产量计数清零 #define MC_STA_MANUAL 0x0006 // 手动工作状态 #define MC_STA_AUTO 0x0007 // 自动工作状态 #define MC_FILE_SWITCH 0x0008 // 文件切换 #define MC_INVALID_FILE 0x0009 // 文件失效命令 #define MC_CLEAN_PARA_REF 0x000A // 清除刷新参数标志 #define MC_SET_TO_NORMAL 0x000B // 设置为正常工作状态 #define MC_SET_TO_SIMULATE 0x000C // 设置为模拟工作状态 #define MC_SET_ERR_STA 0x000D // 设置为错误状态(报错) #define MC_SEL_WORK_HEADS 0x000E // 设置工作机头 #define MC_CLEAN_FIDX 0x000F // 索引复位 #define MC_CLEAN_BOBBIN 0x0010 // 底线计数复位 #define MC_SET_ENTER_SCAN_SENSOR 0x0011 // 设置为 进入 扫描传感器状态 #define MC_SET_EXIT_SCAN_SENSOR 0x0012 // 设置为 退出 扫描传感器状态 #define MC_SET_ENTER_TEST_OUTPUT 0x0013 // 设置为 进入 测试输出状态 #define MC_SET_EXIT_TEST_OUTPUT 0x0014 // 设置为 退出 测试输出状态 #define MC_CHANGE_HOOK_START 0x0020 // 进入换梭状态 #define MC_CHANGE_HOOK_END 0x0021 // 退出换梭状态 #define MC_STA_EXIT_TRA 0x0023 // 退出遍历状态 #define MC_STA_EXIT_THREADBK 0x0024 // 退出断线测试 #define MC_INVALID_FILEBLOCK 0x0026 // 文件数据块失效命令 #endif //------------------------------------------------------------------------ // 设置机器参数 #ifdef UCMD_SET_MC_PARAS #define SEW_MCPARA_MACH 0x00 // 机器配置参数 #define SEW_MCPARA_WORK 0x01 // 机器工作参数 #define EMB_MVSTANG_PARA 0x06 // 起始动框角度 #define EMB_PATCH_DATA_IDX 0x09 // 贴布绣数据,按针 #endif //------------------------------------------------------------------------ // 读取内存数据 // 设置内存数据 #ifdef UCMD_GET_MEM_DATA #ifdef UCMD_SET_MEM_DATA // 对象 (作为基地址,最高字节) #define MEM_INSRAM 0x01 // 片内存储器(只读) #define INSRAM_ADDR_MIN 0 #define INSRAM_ADDR_MAX (0xFFFF) #define MEM_EXSRAM 0x02 // 片外存储器(读写) #define EXSRAM_ADDR_MIN 0 #define EXSRAM_ADDR_MAX ((512*1024+512*1024)-1) #define MEM_NORFLASH 0x03 // 片外 norflash (读写) #define NORFLASH_ADDR_MIN 0 #define NORFLASH_ADDR_MAX ((512*1024+512*1024)-1) #define MEM_FRAM 0x04 // FRAM 存储器 #define FRAM_ADDR_MIN 0 #define FRAM_ADDR_MAX ((8*1024)-1) #define MEM_GPIO 0x05 // IO 端口 #define GPIO_ADDR_MIN 0 #define GPIO_ADDR_MAX ((1*1024)-1) #define MEM_MOTOS 0x06 // 电机控制 #define MOTOS_ADDR_MIN 0 #define MOTOS_ADDR_MAX (0x5F) // 0x00--0x03 电机1位置 // 0x10--0x13 电机2位置 // 0x20--0x23 电机3位置 // 0x30--0x33 电机4位置 // 0x40--0x43 电机5位置 // 0x50--0x53 电机6位置 // 设置到某个位置,电机转动到这个位置,读取位置到达设定位置,运动结束 #define MEM_ECDS 0x07 // 编码器(只读) #define ECDS_ADDR_MIN 0 #define ECDS_ADDR_MAX (0x2F) // 0x00--0x03 编码器1计数 // 0x10--0x13 编码器2计数 // 0x20--0x23 MP计数 #define MEM_ADC 0x08 // AD值(只读) #define ADC_ADDR_MIN 0 #define ADC_ADDR_MAX (0x1F) // 0x00--0x01 ADC1值 // 0x10--0x11 ADC2值 #define MEM_COMM 0x09 // 通讯端口 #define COMM_ADDR_MIN 0 #define COMM_ADDR_MAX (0x1F) // 0x00 -- 0x0F 232 串口1发送BUF // 0x10 -- 0x1F 232 串口2发送BUF // 0x20 -- 0x2F 485 串口3发送BUF // 0x70 -- 0x7F CAN发送BUF // 0x100 -- 0x10F 232 串口1接收BUF // 0x110 -- 0x11F 232 串口2接收BUF // 0x120 -- 0x12F 485 串口3接收BUF // 0x170 -- 0x17F CAN接收BUF #endif #endif //------------------------------------------------------------------------ // 设置文件参数 #ifdef UCMD_SET_FILE_PARAS #endif //------------------------------------------------------------------------ // 设置执行进度 #ifdef UCMD_SET_EXEC_PROGRESS #endif //------------------------------------------------------------------------ // 设置分期密码 #ifdef UCMD_SET_INSTALLMENT #endif //------------------------------------------------------------------------ // 设置经过时间 #ifdef UCMD_SET_ELAPSED_TIME #endif //------------------------------------------------------------------------ // 手动控制命令 #ifdef UCMD_ACT_BYHAND /* |-------------------------------------------------------------------| |-------------------------------------------------------------------| | B6 B7 | B8 B9 | B10 B11 | B12 B13 | |-------------------------------------------------------------------| | 控制动作代码 | 控制参数1 | 控制参数2 | 控制参数3 | |-------------------------------------------------------------------| | | | | | | | | | | | | | | | |-------------------------------------------------------------------| |-------------------------------------------------------------------| */ //-------------------------------------------------- // 控制动作定义 #define MOTO_TO_ZERO 0x0001 // 电机归零 #define MOVE_BY_HAND 0x0002 // 电机手动移动 #define OUTPUT_CTRL 0x0003 // 输出控制 #define MOTO_EN_CTRL 0x0004 // 电机使能控制 #define MANUAL_ACTION 0x0005 // 手动控制功能 #define TEST_THREADBK 0x0007 // 测试断线检测 #define SHAKE_FRAME_TEST 0x0008 // 抖框测试 // 参数1要看具体应用 // 手动移动的 控制参数2 定义 #define MT_MOVE_DIR_STOP 0x0000 // 停止转动 #define MT_MOVE_DIR_POSI 0x0001 // 正向移动(x向右,y向上,升降向上) #define MT_MOVE_DIR_NEGA 0x0002 // 反向移动(x向左,y向下,升降向下) // 手动移动的 控制参数3 定义 // 速度值,rpm 或 mmps // 电机使能的 控制参数2 定义 #define MT_SERVO_ON 0x0001 // 电机使能开 #define MT_SERVO_OFF 0x0002 // 电机使能关 // 手动控制功能的具体代码要看具体应用 #endif //------------------------------------------------------------------------ // 机器工作命令 #ifdef UCMD_MC_WORK /* |-------------------------------------------------------| |-------------------------------------------------------| | B6 B7 | B8 B9 B10 B11 | B12 B13 | |-------------------------------------------------------| | 工作控制功能 | 控制参数1 | 控制参数2 | |-------------------------------------------------------| | | | | | | | | | | | | |-------------------------------------------------------| |-------------------------------------------------------| */ // 工作控制功能 #define WORK_START 0x0001 // 启动工作 #define WORK_PAUSE 0x0002 // 暂停工作 #define WORK_FINISH 0x0003 // 结束工作(流程复位) #define WORK_FIND_ZERO 0x0004 // 自动找零 #define WORK_GOTO_START 0x0005 // 回起点 #define WORK_GOTO_ANCHOR 0x0006 // 回定位点 #define WORK_GOTO_OFFSET 0x0007 // 回偏移点 #define WORK_CHECK_FRAME 0x0008 // 边框检查 #define WORK_CUT_FRAME 0x0009 // 边框切割 #define WORK_CUT_XLINE 0x000A // 手动断布 #define WORK_FAST_JUMP 0x000B // 快速进退 #define WORK_GOTO_WKPOS 0x000C // 回工作点 #define WORK_GOTO_FEEDT 0x000D // 回穿线点 #define WORK_GOTO_CHGBO 0x000E // 回换梭位 #define WORK_FEED_MOVE 0x000F // 进料退料 #define WORK_DRAW_LATTICE 0x0010 // 画格子图 #define WORK_GOTO_FINISH 0x0011 // 回结束点 #define WORK_GOTO_ZERO 0x0012 // 回零点(回绣框原点) #define WORK_RPM_CHG 0x0020 // 速度改变 #define WORK_FILE_IDX_CHG 0x0021 // 文件序号改变 #define WORK_SIMULATION_FRAME 0x0026 // 空走边框 #define WORK_GOTO_FEED 0x0027 // 回上料点 #define WORK_SET_OFFSET 0x0028 // 定偏移点 #define WORK_SET_FEED 0x0029 // 定上料点 #define WORK_ACT_OIL 0x0050 // 工作中加油 // 启动工作参数 #define WKMD_ONCE 0 #define WKMD_NORMAL 1 // 正常 #define WKMD_SIMULATION 2 // 模拟(空走) #define WKMD_BACKWORD 3 // 回退 #endif #ifdef UCMD_MOVE_TO /* |-------------------------------------------------------| |-------------------------------------------------------| | B6 B7 B8 B9 | B10 B11 B12 B13 | |-------------------------------------------------------| | x坐标 | Y坐标 | |-------------------------------------------------------| | | | | | | | | | |-------------------------------------------------------| |-------------------------------------------------------| */ #endif //------------------------------------------------------------------------ // 启动文件传输 #ifdef UCMD_START_TRANS #endif //------------------------------------------------------------------------ // 文件传输命令 #ifdef UCMD_TRANS_FILE_DATA #endif //------------------------------------------------------------------------ #ifdef UCMD_INVALID_FILE // 文件失效命令 #endif //------------------------------------------------------------------------ #ifdef UCMD_SET_FILE_LIST // 设置文件列表 #endif //------------------------------------------------------------------------ #ifdef UCMD_TRA_BOARD #endif //------------------------------------------------------------------------ // 下位机升级 #ifdef UCMD_MC_UPDATE #endif //------------------------------------------------------------------------ // 发送传感信号 // u8 sendSensors.exData[MAX_EXDP_LEN] #ifdef DCMD_SEND_SENSORS #define DSS_DEF_IDX 0x03FE // 未使用接口定义地址 #define DSS_DEF_BIT 0x01 // 未使用接口定义位 //---------------------------------------------------------------- // 位: #define DSS_BIT1 0x01 // idx1 #define DSS_BIT2 0x02 // idx2 #define DSS_BIT3 0x04 // idx3 #define DSS_BIT4 0x08 // idx4 #define DSS_BIT5 0x10 // idx5 #define DSS_BIT6 0x20 // idx6 #define DSS_BIT7 0x40 // idx7 #define DSS_BIT8 0x80 // idx8 // 机头1~16位: #define DSS_HEAD_01 DSS_BIT1 // idx1 #define DSS_HEAD_02 DSS_BIT2 // idx2 #define DSS_HEAD_03 DSS_BIT3 // idx3 #define DSS_HEAD_04 DSS_BIT4 // idx4 #define DSS_HEAD_05 DSS_BIT5 // idx5 #define DSS_HEAD_06 DSS_BIT6 // idx6 #define DSS_HEAD_07 DSS_BIT7 // idx7 #define DSS_HEAD_08 DSS_BIT8 // idx8 #define DSS_HEAD_09 DSS_BIT1 // idx1 #define DSS_HEAD_10 DSS_BIT2 // idx2 #define DSS_HEAD_11 DSS_BIT3 // idx3 #define DSS_HEAD_12 DSS_BIT4 // idx4 #define DSS_HEAD_13 DSS_BIT5 // idx5 #define DSS_HEAD_14 DSS_BIT6 // idx6 #define DSS_HEAD_15 DSS_BIT7 // idx7 #define DSS_HEAD_16 DSS_BIT8 // idx8 //---------------------------------------------------------------- // 1.基础信号 0x0000~0x001F #if (1) //-------------------------------- #define DSS1_B_START_BT 0x0000 // 启动按钮(1~8) #define DSS1_B_PAUSE_BT 0x0001 // 暂停按钮(1~8) #define DSS1_B_JOG_BT 0x0002 // 点动按钮(1~8) #define DSS1_B_FRMOP_BT 0x0003 // 开框按钮(1~8) #define DSS1_B_AUTO_BT 0x0004 // 手动按钮(1~8) #define DSS1_B_READY_BT 0x0005 // 就绪按钮(1~8) #define DSS1_B_KEY_BT 0x0006 // 钥匙按钮(1~8) #define DSS1_B_AIR_TEST 0x0007 // 气压检测(1~8) #define DSS1_B_SAFE_TEST 0x0008 // 安全输入(1~8) #define DSS1_B_TPLPOS 0x0009 // 模板到位(1~8) #define DSS1_B_MOTO_ALM1 0x000A // 电机报警(1~8) #define DSS1_B_MOTO_ALM2 0x000B // 电机报警(9~16) #define DSS1_B_MOTO_ALM3 0x000C // 电机报警(17~24) #define DSS1_B_MOTO_ALM4 0x000D // 电机报警(25~32) #define DSS1_B_MOTO_ALM5 0x000E // 电机报警(33~40) #define DSS1_B_MOTO_ALM6 0x000F // 电机报警(41~48) #define DSS1_B_BASE_TEST 0x0010 // 安全输入(1~8) #define DSS1_BASE_POW DSS_BIT1 // 加电信号 #define DSS1_B_OIL_BT 0x0011 // 加油按钮(1~8) // 0x0011 ~ 0x001F // 基础信号 预留 #endif //---------------------------------------------------------------- // 2.框位(轴)置信号 0x0020~0x007F #if (1) //-------------------------------- #define DSS2_F1_ZERO_POS 0x0020 // 框架(轴)1 零位 #define DSS2_F1_SLOW_POS 0x0021 // 框架(轴)1 降速 #define DSS2_F1_NLIMT_POS 0x0022 // 框架(轴)1 限位- #define DSS2_F1_PLIMT_POS 0x0023 // 框架(轴)1 限位+ #define DSS2_F1_X DSS_BIT1 // X (主框架X) #define DSS2_F1_Y DSS_BIT2 // Y (主框架Y) #define DSS2_F1_Y2 DSS_BIT3 // Y (主框架Y2) #define DSS2_F1_X2 DSS_BIT4 // X (主框架X2) #define DSS2_F2_ZERO_POS 0x0024 // 框架(轴)2 零位 #define DSS2_F2_SLOW_POS 0x0025 // 框架(轴)2 降速 #define DSS2_F2_NLIMT_POS 0x0026 // 框架(轴)2 限位- #define DSS2_F2_PLIMT_POS 0x0027 // 框架(轴)2 限位+ #define DSS2_F2_SP0 DSS_BIT1 // 备用2 #define DSS2_F2_SP1 DSS_BIT2 // 备用2 #define DSS2_F2_SP2 DSS_BIT3 // 备用2 #define DSS2_F2_SP3 DSS_BIT4 // 备用2 #define DSS2_F2_SP4 DSS_BIT5 // 备用2 #define DSS2_F2_SP5 DSS_BIT6 // 备用2 #define DSS2_F2_SP6 DSS_BIT7 // 备用2 #define DSS2_F2_SP7 DSS_BIT8 // 备用2 #define DSS2_F3_ZERO_POS 0x0028 // 框架(轴)3 零位 #define DSS2_F3_SLOW_POS 0x0029 // 框架(轴)3 降速 #define DSS2_F3_NLIMT_POS 0x002A // 框架(轴)3 限位- #define DSS2_F3_PLIMT_POS 0x002B // 框架(轴)3 限位+ #define DSS2_F3_SP0 DSS_BIT1 // 备用3 #define DSS2_F3_SP1 DSS_BIT2 // 备用3 #define DSS2_F3_SP2 DSS_BIT3 // 备用3 #define DSS2_F3_SP3 DSS_BIT4 // 备用3 #define DSS2_F3_SP4 DSS_BIT5 // 备用3 #define DSS2_F3_SP5 DSS_BIT6 // 备用3 #define DSS2_F3_SP6 DSS_BIT7 // 备用3 #define DSS2_F3_SP7 DSS_BIT8 // 备用3 #define DSS2_F4_ZERO_POS 0x002C // 框架(轴)4 零位 #define DSS2_F4_SLOW_POS 0x002D // 框架(轴)4 降速 #define DSS2_F4_NLIMT_POS 0x002E // 框架(轴)4 限位- #define DSS2_F4_PLIMT_POS 0x002F // 框架(轴)4 限位+ #define DSS2_F4_SP0 DSS_BIT1 // 备用4 #define DSS2_F4_SP1 DSS_BIT2 // 备用4 #define DSS2_F4_SP2 DSS_BIT3 // 备用4 #define DSS2_F4_SP3 DSS_BIT4 // 备用4 #define DSS2_F4_SP4 DSS_BIT5 // 备用4 #define DSS2_F4_SP5 DSS_BIT6 // 备用4 #define DSS2_F4_SP6 DSS_BIT7 // 备用4 #define DSS2_F4_SP7 DSS_BIT8 // 备用4 //-------------------------------- #define DSS2_RU_ZERO1_POS 0x0030 // 缝纫上旋转零位(1~8) #define DSS2_RU_ZERO2_POS 0x0031 // 缝纫上旋转零位(9~16) #define DSS2_RU_NLIMT1_POS 0x0032 // 缝纫上旋转限位-(1~8) #define DSS2_RU_NLIMT2_POS 0x0033 // 缝纫上旋转限位-(9~16) #define DSS2_RU_PLIMT1_POS 0x0034 // 缝纫上旋转限位+(1~8) #define DSS2_RU_PLIMT2_POS 0x0035 // 缝纫上旋转限位+(9~16) #define DSS2_RD_ZERO1_POS 0x0036 // 缝纫下旋转零位(1~8) #define DSS2_RD_ZERO2_POS 0x0037 // 缝纫下旋转零位(9~16) #define DSS2_RD_NLIMT1_POS 0x0038 // 缝纫下旋转限位-(1~8) #define DSS2_RD_NLIMT2_POS 0x0039 // 缝纫下旋转限位-(9~16) #define DSS2_RD_PLIMT1_POS 0x003A // 缝纫下旋转限位+(1~8) #define DSS2_RD_PLIMT2_POS 0x003B // 缝纫下旋转限位+(9~16) #define DSS2_CT_ZERO1_POS 0x003C // 裁刀旋转零位(1~8) #define DSS2_CT_ZERO2_POS 0x003D // 裁刀旋转零位(9~16) #define DSS2_PU_SP1_POS 0x003E // 冲孔旋转零位(1~8) #define DSS2_PU_SP2_POS 0x003F // 冲孔旋转零位(9~16) //-------------------------------- #define DSS2_UD_SU1_POS 0x0040 // 缝纫机头 高位(1~8) #define DSS2_UD_SU2_POS 0x0041 // 缝纫机头 高位(9~16) #define DSS2_UD_SD1_POS 0x0042 // 缝纫机头 低位(1~8) #define DSS2_UD_SD2_POS 0x0043 // 缝纫机头 低位(9~16) #define DSS2_UD_PU1_POS 0x0044 // 冲孔机头 高位(1~8) #define DSS2_UD_PU2_POS 0x0045 // 冲孔机头 高位(9~16) #define DSS2_UD_PD1_POS 0x0046 // 冲孔机头 低位(1~8) #define DSS2_UD_PD2_POS 0x0047 // 冲孔机头 低位(9~16) #define DSS2_UD_CU1_POS 0x0048 // 裁切机头 高位(1~8) #define DSS2_UD_CU2_POS 0x0049 // 裁切机头 高位(9~16) #define DSS2_UD_CD1_POS 0x004A // 裁切机头 低位(1~8) #define DSS2_UD_CD2_POS 0x004B // 裁切机头 低位(9~16) #define DSS2_UD_IU1_POS 0x004C // 画笔机头 高位(1~8) #define DSS2_UD_IU2_POS 0x004D // 画笔机头 高位(9~16) #define DSS2_UD_ID1_POS 0x004E // 画笔机头 低位(1~8) #define DSS2_UD_ID2_POS 0x004F // 画笔机头 低位(9~16) //-------------------------------- #define DSS2_UD_ZU1_POS 0x0050 // 压枣压头 高位(1~8) #define DSS2_UD_ZU2_POS 0x0051 // 压枣压头 高位(9~16) #define DSS2_UD_ZD1_POS 0x0052 // 压枣压头 低位(1~8) #define DSS2_UD_ZD2_POS 0x0053 // 压枣压头 低位(9~16) #define DSS2_UD_SP1U1_POS 0x0054 // 升降滑台备用 高位(1~8) #define DSS2_UD_SP1U2_POS 0x0055 // 升降滑台备用 高位(9~16) #define DSS2_UD_SP2D1_POS 0x0056 // 升降滑台备用 低位(1~8) #define DSS2_UD_SP2D2_POS 0x0057 // 升降滑台备用 低位(9~16) #define DSS2_UD_SP3U1_POS 0x0058 // 升降滑台备用 高位(1~8) #define DSS2_UD_SP3U2_POS 0x0059 // 升降滑台备用 高位(9~16) #define DSS2_UD_SP4D1_POS 0x005A // 升降滑台备用 低位(1~8) #define DSS2_UD_SP4D2_POS 0x005B // 升降滑台备用 低位(9~16) #define DSS2_UD_SP5U1_POS 0x005C // 升降滑台备用 高位(1~8) #define DSS2_UD_SP5U2_POS 0x005D // 升降滑台备用 高位(9~16) #define DSS2_UD_SP6D1_POS 0x005E // 升降滑台备用 低位(1~8) #define DSS2_UD_SP6D2_POS 0x005F // 升降滑台备用 低位(9~16) // 0x0060 ~ 0x007F // 框架位置信号 预留 #endif //---------------------------------------------------------------- // 3.主轴位置信号 0x080~0x00BF #if (1) //-------------------------------- #define DSS3_HS_UZ1_POS 0x0080 // 缝纫针停车位(1~8) #define DSS3_HS_UZ2_POS 0x0081 // 缝纫针停车位(9~16) #define DSS3_HS_UG1_POS 0x0082 // 缝纫针勾线位(1~8) #define DSS3_HS_UG2_POS 0x0083 // 缝纫针勾线位(9~16) #define DSS3_HS_UU1_POS 0x0084 // 缝纫针上位(1~8) #define DSS3_HS_UU2_POS 0x0085 // 缝纫针上位(9~16) #define DSS3_HS_UL1_POS 0x0086 // 缝纫离合对位(1~8) #define DSS3_HS_UL2_POS 0x0087 // 缝纫离合对位(9~16) #define DSS3_HS_DZ1_POS 0x0088 // 缝纫梭停车位(1~8) #define DSS3_HS_DZ2_POS 0x0089 // 缝纫梭停车位(9~16) #define DSS3_HS_DG1_POS 0x008A // 缝纫梭勾线位(1~8) #define DSS3_HS_DG2_POS 0x008B // 缝纫梭勾线位(9~16) #define DSS3_HS_SP1_POS 0x008C // 缝纫主轴预留(1~8) #define DSS3_HS_SP2_POS 0x008D // 缝纫主轴预留(9~16) #define DSS3_HS_SP3_POS 0x008E // 缝纫主轴预留(1~8) #define DSS3_HS_SP4_POS 0x008F // 缝纫主轴预留(9~16) //-------------------------------- #define DSS3_HE_PZ1_POS 0x0090 // 冲孔主轴零位(1~8) #define DSS3_HE_PZ2_POS 0x0091 // 冲孔主轴零位(9~16) #define DSS3_HE_CZ1_POS 0x0092 // 裁刀主轴零位(1~8) #define DSS3_HE_CZ2_POS 0x0093 // 裁刀主轴零位(9~16) #define DSS3_HE_TNZ1_POS 0x0094 // 毛巾主轴针零位(1~8) #define DSS3_HE_TNZ2_POS 0x0095 // 毛巾主轴针零位(9~16) #define DSS3_HE_TSZ1_POS 0x0096 // 毛巾主轴梭零位(1~8) #define DSS3_HE_TSZ2_POS 0x0097 // 毛巾主轴梭零位(9~16) #define DSS3_HE_EZ1_POS 0x0098 // 绣花主轴零位(1~8) #define DSS3_HE_EZ2_POS 0x0099 // 绣花主轴零位(9~16) #define DSS3_HE_SP1_POS 0x009A // 非缝纫主轴预留(1~8) #define DSS3_HE_SP2_POS 0x009B // 非缝纫主轴预留(9~16) #define DSS3_HE_EH1_POS 0x009C // 绣花梭主轴零位(1~8) #define DSS3_HE_EH2_POS 0x009D // 绣花梭主轴零位(9~16) #define DSS3_HE_SP5_POS 0x009E // 非缝纫主轴预留(1~8) #define DSS3_HE_SP6_POS 0x009F // 非缝纫主轴预留(9~16) #define DSS3_HE_PMP1_POS 0x00A0 // 冲孔主轴位置(1~8) #define DSS3_HE_PMP2_POS 0x00A1 // 冲孔主轴位置(9~16) // 0x00A0 ~ 0x00BF // 主轴位置信号 预留 #endif //---------------------------------------------------------------- // 4.机头按钮(开关)信号 0x00C0~0x00FF #if (1) //-------------------------------- #define DSS4_K_SU1_BT 0x00C0 // 缝纫升降按钮(1~8) #define DSS4_K_SU2_BT 0x00C1 // 缝纫升降按钮(9~16) #define DSS4_K_KU1_BT 0x00C2 // 冲孔升降按钮(1~8) #define DSS4_K_KU2_BT 0x00C3 // 冲孔升降按钮(9~16) #define DSS4_K_CU1_BT 0x00C4 // 裁刀升降按钮(1~8) #define DSS4_K_CU2_BT 0x00C5 // 裁刀升降按钮(9~16) #define DSS4_K_PU1_BT 0x00C6 // 画笔升降按钮(1~8) #define DSS4_K_PU2_BT 0x00C7 // 画笔升降按钮(9~16) #define DSS4_K_ZU1_BT 0x00C8 // 压枣升降按钮(1~8) #define DSS4_K_ZU2_BT 0x00C9 // 压枣升降按钮(9~16) #define DSS4_K_SL1_BT 0x00CA // 缝纫锁头按钮(1~8) #define DSS4_K_SL2_BT 0x00CB // 缝纫锁头按钮(9~16) #define DSS4_K_PL1_BT 0x00CC // 冲孔锁头按钮(1~8) #define DSS4_K_PL2_BT 0x00CD // 冲孔锁头按钮(9~16) #define DSS4_K_SR1_BT 0x00CE // 缝纫补缝按钮(1~8) #define DSS4_K_SR2_BT 0x00CF // 缝纫补缝按钮(9~16) #define DSS4_K_BLT_BT 0x00D0 // 传送带按钮 #define DSS4_K_BLT1 DSS_BIT1 // 传送带前进按钮 #define DSS4_K_BLT2 DSS_BIT2 // 传送带后退按钮 #define DSS4_K_BLT3 DSS_BIT3 // 上料传送带前进按钮 #define DSS4_K_BLT4 DSS_BIT4 // 上料传送带后退按钮 #define DSS4_K_BLT5 DSS_BIT5 // 缝纫传送带前进按钮 #define DSS4_K_BLT6 DSS_BIT6 // 缝纫传送带后退按钮 #define DSS4_K_BLT7 DSS_BIT7 // 备用 #define DSS4_K_BLT8 DSS_BIT8 // 备用 // 0x00D0 ~ 0x00FF // 机头按钮(开关)信号 预留 #endif //---------------------------------------------------------------- // 5.机头检测信号 0x0100~0x01FF #if (1) //-------------------------------- // 5.1 绣花机 0x0100~0x016F #if (1) // 0x0100 ~ 0x016F // 绣花机机头检测信号 预留 #define DSS5_ST0_DCZ1 0x0100 // 绣花下剪线回位(1~8) #define DSS5_ST0_DCZ2 0x0101 // 绣花下剪线回位(9~16) #define DSS5_ST0_MAZP 0x0102 // M轴零位 #define DSS5_MA_CHENILLE DSS_BIT1 // 毛巾M轴零位 #define DSS5_MA_RING DSS_BIT2 // 毛巾打环零位 #define DSS5_MA_COIL DSS_BIT3 // 缠绕M轴零位 #define DSS5_MA_CAP DSS_BIT4 // 帽框到位 #define DSS5_ST0_DEVS 0x0103 // 装置信号 #define DSS5_ACS_ALM DSS_BIT1 // 自动换梭报警 #define DSS5_TR_ALM DSS_BIT2 // 跟踪绳绣报警 #define DSS5_ST0_QUI 0x0104 // 勾换零位 #define DSS5_SZ_HOOK DSS_BIT1 // 勾刀回位 #define DSS5_SZ_COLOR DSS_BIT2 // 换色零位 #define DSS5_SZ_CPOS1 DSS_BIT3 // 换色位置1 #define DSS5_SZ_CPOS2 DSS_BIT4 // 换色位置2 #define DSS5_SZ_CPOS3 DSS_BIT5 // 换色位置3 #define DSS5_SZ_CPOS4 DSS_BIT6 // 换色位置4 #define DSS5_SZ_FOOT DSS_BIT7 // 脚踏开关 #endif //-------------------------------- // 5.2 缝纫机 0x0170~0x01AF #if (1) //-------------------------------- #define DSS5_ST1_BKU1 0x0170 // 缝纫面线断线检测(1~8) #define DSS5_ST1_BKU2 0x0171 // 缝纫面线断线检测(9~16) #define DSS5_ST1_BKD1 0x0172 // 缝纫底线断线检测(1~8) #define DSS5_ST1_BKD2 0x0173 // 缝纫底线断线检测(9~16) #define DSS5_ST1_DCZ1 0x0174 // 缝纫下剪线回位(1~8) #define DSS5_ST1_DCZ2 0x0175 // 缝纫下剪线回位(9~16) #define DSS5_ST1_FTZ1 0x0176 // 缝纫压脚提升零位(1~8) #define DSS5_ST1_FTZ2 0x0177 // 缝纫压脚提升零位(9~16) #define DSS5_ST1_JXH1 0x0178 // 缝纫夹线高位(1~8) #define DSS5_ST1_JXH2 0x0179 // 缝纫夹线高位(9~16) #define DSS5_ST1_JXL1 0x017A // 缝纫夹线低位(1~8) #define DSS5_ST1_JXL2 0x017B // 缝纫夹线低位(9~16) #define DSS5_ST1_JXO1 0x017C // 缝纫夹线开位(1~8) #define DSS5_ST1_JXO2 0x017D // 缝纫夹线开位(9~16) #define DSS5_ST1_JXC1 0x017E // 缝纫夹线合位(1~8) #define DSS5_ST1_JXC2 0x017F // 缝纫夹线合位(9~16) // 0x0180 ~ 0x01AF // 缝纫机机头检测信号 预留 #define DSS5_ST1_DCO1 0x0180 // 缝纫下剪线开位(1~8) #define DSS5_ST1_DCO2 0x0181 // 缝纫下剪线开位(9~16) #define DSS5_ST1_NLC1 0x0182 // 针板盖检测(1~8) #define DSS5_ST1_NLC2 0x0183 // 针板盖检测(9~16) #define DSS5_ST1_SNZ1 0x0184 // 摆针零位(1~8) #define DSS5_ST1_SNZ2 0x0185 // 摆针零位(9~16) #endif // 0x0180 ~ 0x01AF // 缝纫机机头检测信号 预留 //-------------------------------- // 5.3 激光/裁床/铣切 0x01B0~0x01FF #if (1) //-------------------------------- // 0x01B0 ~ 0x01FF // 非缝绣机机头检测信号 预留 #endif #endif //---------------------------------------------------------------- // 6.通用检测信号(按机型划分) 0x0200~0x02FF #if (1) //-------------------------------- // 6.4 其他机型 0x02B0~0x02FF #if (1) //-------------------------------- // 0x02B0 ~ 0x02FF // 其他机型检测信号 预留 #define DSS6_ADDR_02B0 0x02B0 // 自动换梭信号 // BIT1 : 梭在位检测 // BIT2 : 扣线伸出位 // BIT3 : 换梭旋转伸出位 // BIT4 : 换梭旋转收回位 // BIT5 : 换梭推动伸出位 // BIT6 : 换梭推动收回位 // BIT7 : 换梭摆动伸出位 // BIT8 : 换梭摆动收回位 #define DSS6_ADDR_02B1 0x02B1 // 自动对边信号 // BIT1 : 对边1左限位 // BIT2 : 对边1左位置 // BIT3 : 对边1右位置 // BIT4 : 对边1右限位 // BIT5 : 对边2左限位 // BIT6 : 对边2左位置 // BIT7 : 对边2右位置 // BIT8 : 对边2右限位 #define DSS6_ADDR_02B2 0x02B2 // 自动上料架信号 // BIT1 : 上料架1缺料 // BIT2 : 上料架1满料 // BIT3 : 上料架1启动 // BIT4 : 预留4 // BIT5 : 上料架2缺料 // BIT6 : 上料架2满料 // BIT7 : 上料架2启动 // BIT8 : 预留8 #define DSS6_ADDR_02B3 0x02B3 // 主动送料信号 // BIT1 : 送料1启动 // BIT2 : 送料1停止 // BIT3 : 送料2启动 // BIT4 : 送料2停止 // BIT5 : 送料3启动 // BIT6 : 送料3停止 // BIT7 : 送料4启动 // BIT8 : 送料4停止 #define DSS6_ADDR_02B8 0x02B8 // 床笠裙边机信号 // BIT1 : 上机头零位 // BIT2 : 下机头零位 // BIT3 : 上机头断线检测 // BIT4 : 下机头断线检测 // BIT5 : 罗拉电机控制按钮 // BIT6 : 缺料检测 // BIT7 : // BIT8 : #define DSS6_ADDR_02B9 0x02B9 // 床笠裙边机信号 // BIT1 : 上料对边左限位 // BIT2 : 上料对边右限位 // BIT3 : 上料对边左检测 // BIT4 : 上料对边右检测 // BIT5 : 上机头对边左限位 // BIT6 : 上机头对边右限位 // BIT7 : 上机头对边左检测 // BIT8 : 上机头对边右检测 #endif #endif //---------------------------------------------------------------- // 7.个例检测信号(按添加日期划分) 0x0300~0x03FF #if (1) //-------------------------------- // 0x0300 ~ 0x030F //-------------------------------- // 0x03D0 ~ 0x03DF #if (1) #endif //-------------------------------- // 0x03E0 ~ 0x03EF #if (1) #endif //-------------------------------- // 0x03F0 ~ 0x03FE #if (1) #endif #endif #endif //#ifdef DCMD_SEND_SENSORS // 发送传感信号 //------------------------------------------------------------------------ // 命令结构定义 typedef union { DataPacket packet; struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 toggle; u8 rev[6]; u16 crc; } __attribute__ ((packed)) getMcInfo; // 读取机器信息 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 toggle; u8 rev[6]; u16 crc; } __attribute__ ((packed)) getMcStatus; // 读取机器状态 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 paraType; u16 paraId; // 0, 所有参数; 1--256, 对应的参数号 u8 rev[4]; u16 crc; } __attribute__ ((packed)) getMcParas; // 读取机器参数 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u32 begAddr; u16 rdSize; u8 rev[2]; u16 crc; } __attribute__ ((packed)) getMemData; // 读取内存数据 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 backType; u8 rev[6]; u16 crc; } __attribute__ ((packed)) getSensors; // 读取传感信号 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u8 fileType; u8 fileIdx; u8 rev[6]; u16 crc; } __attribute__ ((packed)) getFileInfo; // 读取文件信息 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 fileId; u8 rev[6]; u16 crc; } __attribute__ ((packed)) getTransResult; // 读取传输结果 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u16 cfgItem; u8 rev[2]; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) setMcConfig; // 设置机器配置 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 staCode; u16 para; u8 rev[4]; u16 crc; } __attribute__ ((packed)) setMcStatus; // 设置机器状态 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u16 paraType; u16 paraId; // 0, 所有参数; 1--256, 对应的参数号 u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) setParas; // 设置下位机参数 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u32 begAddr; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) setMemData; // 设置内存数据 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u8 rev[4]; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) setFileParas; // 设置文件参数 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u8 exDataType; // 扩展数据类型 u8 exDataIdx; u8 rev[2]; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) setFileExData; // 设置文件扩展数据 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u8 id; u8 nodetype; u8 rev[6]; u16 crc; } __attribute__ ((packed)) setDefParas; // 设置默认参数 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u8 fileType; u8 fileIdx; u16 fileId; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) setExecProgress; // 设置进度命令 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u8 rev[4]; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) setInstallment; // 设置分期密码 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u8 type; u32 time; // 单位秒 u8 rev[3]; u16 crc; } __attribute__ ((packed)) setElapsedTime; // UCMD_SET_ELAPSED_TIME 设置经过的时间 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 actCode; u16 para1; u16 para2; u16 para3; u16 crc; } __attribute__ ((packed)) actByhand; // 手动动作功能 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 workCode; u32 para1; u16 para2; u16 crc; } __attribute__ ((packed)) mcWork; // 机器工作命令 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; s32 posx; s32 posy; u16 crc; } __attribute__ ((packed)) moveFrameTo; // 移动框架到位置命令 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u8 fileType; u8 fileIdx; u16 fileId; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) startTrans; // 启动文件传输 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u16 pktIdx; u16 fileId; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) transFileData; // 文件数据传输 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u32 fileIdxMap; u16 crc; } __attribute__ ((packed)) setFilesList; // 设置文件列表 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 upObj; u16 upFileID; u8 rev[4]; u16 crc; } __attribute__ ((packed)) mcUpdate; // 系统升级 //---------------------------------- struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u8 fileType; u8 fileIdx; u16 fileId; u32 datBlockIdx; // 数据包索引(每个包1024字节) u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) requestDatBlock; // 请求文件数据 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u16 toggle; u8 rev[2]; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) sendMcInfo; // 发送机器信息 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u16 toggle; u8 rev[2]; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) sendMcStatus; // 发送机器状态 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u16 paraType; u16 paraId; // 0, 所有参数; 1--256, 对应的参数号 u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) sendMcParas; // 发送机器参数 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u32 begAddr; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) sendMemData; // 发送内存数据 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u8 rev[4]; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) sendSensors; // 发送传感信号 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u8 fileType; u8 fileIdx; u8 rev[2]; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) sendFileInfo; // 发送文件信息 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u16 fileId; u8 active; u8 result; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) sendTransResult; // 发送传输结果 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u8 rev[4]; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) sendDebugInfo; // 发送调试信息 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u8 protocolType; // 协议类型 u8 nodeType; // 遍历节点类型 u8 traNum; // 遍历个数 u8 nodeId; // 遍历起始节点ID u8 rev[4]; u16 crc; } __attribute__ ((packed)) traverse; // 遍历命令 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u8 rev[8]; u16 crc; } __attribute__ ((packed)) rdBoardVer; // 读取外围板程序版本 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u8 protocolType; // 协议类型 u8 nodeId; // 节点ID u8 nodetype; // 节点类型 u8 rev[5]; u16 crc; } __attribute__ ((packed)) updateBoard; // 升级外围板 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u8 protocolType; // 协议类型 u8 nodeId; // 节点ID u8 nodeType; // 节点类型 u8 rev; u16 crc; u32 ver[8]; u8 exData[MAX_EXDP_LEN-32]; } __attribute__ ((packed)) sendBoardVer; // 发送外围板程序版本 struct { u8 sync[DP_SYNC_LEN]; u16 cmdCode; u16 exLen; u16 exCrc; u8 nodeId; u8 nodeType; u8 paraid; u8 rev; u16 crc; u8 exData[MAX_EXDP_LEN]; } __attribute__ ((packed)) boardPara; // 发送外围板非易失性参数 }OperPacket; //------------------------------------------------------------------------ void InitOperator(void); void OperatorTask(void); void OperatorTaskWhenRun(int revfile); void OperatorTaskWhenBoot(void); //------------------------------------------------------------------------ int IsNewOperCmd(void); void SendMcStatus(int force); void RequestFileData(u8 fileType, u8 fileIdx, u16 fileId, int datblockIdx); int SendDebugInfo(char * pStr); int SendFileParas(int beginX, int beginY); //------------------------------------------------------------------------ #endif