PunchHMI/machine/comm/protocol.h

1931 lines
89 KiB
C
Raw Permalink Normal View History

2024-02-06 06:58:57 +00:00
#ifndef __PROTOCOL_H__
#define __PROTOCOL_H__
#include "comm.h"
#include "datadef.h"
#pragma pack(1)//设定为1字节对齐
// 和下位机的通讯协议
/*
// 通讯数据包定义
1.
|-------------------------------------------------------------------|-----------|
| | | |
|-------------------------------------------------------------------|-----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 B8 B9 B10 B11 B12 B13 | B14 B15 |
|-------------------------------------------------------------------|-----------|
| | | | B4--B13的 |
| | ID | | |
| 'F','L','D','P' | | | 16CRC |
|-------------------------------------------------------------------|-----------|
2.
|---------------------------------------------------------------------------|-----------|----------------
| | | | |
|---------------------------------------------------------------------------|-----------|---------------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 B12 B13 | B14 B15 | B16--Bn |
|---------------------------------------------------------------------------|-----------|---------------|
| | | | | | B4--B13的 | |
| | ID | | | | | |
| 'V','L','D','P' | | | | | 16CRC | |
|---------------------------------------------------------------------------|-----------|---------------|
0--1024
//------------------------------------
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 SRAMSRAMNAND FLASH等的内容
UCMD_GET_SENSORS 0x0005 FLDP IO信号状态及电机位置
UCMD_GET_FILE_INFO 0x0006 FLDP
UCMD_GET_TRANS_RESULT 0x0007 FLDP
UCMD_GET_SENSOR_BMP 0x0008 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_SET_FILE_PARAS 0x0105 FLDP
UCMD_SET_EXEC_PROGRESS 0x0106 FLDP
UCMD_SET_INSTALLMENT 0x0107 FLDP
UCMD_SET_ELAPSED_TIME 0x0108 FLDP
UCMD_SET_DEF_PARA 0x0109 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_SET_FILE_LIST 0x0304 VLDP
UCMD_GET_FILE_LIST 0x0305 FLDP
UCMD_MC_UPDATE 0x0401 VLDP
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 SRAMSRAMNAND FLASH等的内容
DCMD_SEND_SENSORS 0x8005 VLDP IO信号状态及电机位置
DCMD_SEND_FILE_INFO 0x8006 VLDP
DCMD_SEND_TRANS_RESULT 0x8007 VLDP
DCMD_SEND_SENSOR_BMP 0x8008 VLDP
DCMD_SEND_TENSION 0x8009 VLDP
*/
// 上位机发送命令
#define UCMD_GET_MC_INFO 0x0001 // 读取机器信息
#define UCMD_GET_MC_STATUS 0x0002 // 读取机器状态
#define UCMD_GET_MC_PARAS 0x0003 // 读取机器参数
#define UCMD_GET_SENSORS 0x0005 // 读取传感信号
#define UCMD_GET_TRANS_RESULT 0x0007 // 读取传输结果
#define UCMD_GET_SENSOR_BMP 0x0008 // 读取传感器位图
#define UCMD_GET_BOARD_VER 0x000A // 读取外围板程序版本
#define UCMD_GET_LOT_DATA 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_MVANGDEF_PARA 0x010D // 设置动框角度默认参数
#define UCMD_GET_HEAD_PARA 0x000B // 读取机头板参数
#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_TRANS_FILE_DATA 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_SENSORS 0x8005 // 发送传感信号
#define DCMD_SEND_FILE_INFO 0x8006 // 发送文件信息
#define DCMD_SEND_TRANS_RESULT 0x8007 // 发送传输结果
#define DCMD_SEND_SENSOR_BMP 0x8008 // 发送传感器位图
#define DCMD_SEND_BOARDVER 0x800A // 发送外围板程序版本
#define DCMD_SEND_HEADPARA 0x800B // 发送机头板参数
#define DCMD_SEND_LOTDATA 0x800D // 发送物联网数据
#define DCMD_SEND_DEBUG_INFO 0x8010 // 调试信息发送
// 三、命令详解
/*
1. UCMD_GET_MC_INFO ,
|-------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------|
| | | |
|-------------------|-----------------------------------------------------------------------|-----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 B10 B11 B12 B13 | B14 B15 |
|-------------------|-------------------|-------------------|-------------------------------|-----------|
| | ID | | | B4--B13的 |
| |-------------------|-------------------|-------------------------------| |
| 'F','L','D','P' | UCMD_GET_MC_INFO | | | 16CRC |
|-------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------|
2. DCMD_SEND_MC_INFO ,
|-----------------------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------|-----------|---------------|
| | | | |
|-------------------------------------------------------------------------------------------|-----------|---------------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 | B12 B13 | B14 B15 | B16--Bn |
|-------------------------------------------------------------------------------------------|-----------|---------------|
| | | | | | | B4--B13的 | |
| | DCMD_SEND_MC_INFO | | | | | | |
| 'V','L','D','P' | | | | | | 16CRC | |
|-------------------------------------------------------------------------------------------|-----------|---------------|
|-----------------------------------------------------------------------------------------------------------------------|
3. ,
*/
// 机器信息结构定义
typedef struct
{
// 0
char mBoardVerStr[16]; // 主板n1板卡版本
char exBoardVerStr[16]; // 扩展板n1-1板卡版本
char softwareVerStr[32]; // 软件版本
char buildInfoStr[32]; // 编译日期信息
char boardId[32]; // 板卡ID
char installment[32]; // 最后一次的分期密码字符串
// 160
char rev1[512-160];
// 512
u32 localIP; // 板卡IP地址
u32 submask; // 子网掩码
u32 gateIP; // 网关IP
// 524
u8 rev2[1024-524];
} __attribute__ ((packed)) MCInfo;
typedef struct
{
char debugInfoStr[1024]; // 调试信息
} __attribute__ ((packed)) DebugInfo; // 调试信息
typedef struct
{
// 0
char mBoardVerStr[16]; // 主板n1板卡版本
// 4
char exBoardVerStr[16]; // 扩展板n1-1板卡版本
// 8
char softwareVerStr[32]; // 软件版本
// 16
char boardId[32]; // 板卡ID
// 24
char installment[32]; // 最后一次的分期密码字符串
// 32
u32 rev10[32];
// 64
u32 errorCode; // 报警信息
s32 workableTimer; // 可工作时间计数器,剩余时间计数(分钟为单位)
u32 bootTimer; // 开机时间(单位分钟)
u32 workTimer; // 工作时间(单位分钟)
u32 workRpm; // 工作转速
u32 curOutCounter; // 当前产量计数,由界面记录
u32 totalOutCounter; // 累计产量计数
u32 expectedOutput; // 产量预设
u32 spindleZeroSta; // 主轴零位状态
u32 spindleAngle; // 主轴角度
s32 motosPos[6]; // 电机坐标
// 80
u32 sensorSignal[8]; // 传感器信号
// 88
u32 machinecfg; //机器配置
//勾线模式 bit0 0:单独勾线1:集中勾线
//锁头模式 bit1 0电机锁头1电磁铁锁头
//89
u32 sewHeadNumbers;//缝纫机头个数
//90
u32 embHeadNumbers; //绣花机头个数
//91
u32 embneedleNumbers;//绣花机针个数
//92
u32 punchHeadNumbers;//冲孔机头个数
//93
u32 punchneedleNumbers;//冲孔机针个数
//94
u32 sensonNumbers;//传感器信号总数
u32 rev20[128-95];
// 128
u32 rev30[192-128];
//192
u32 rev40[256-192];
} __attribute__ ((packed)) McLotData; // 主控物联网数据
#define BOARD_VER_LEN 32 // 外围板程序版本长度
#define MAX_SUPPORT_N5 48
#define MAX_SUPPORT_N6 2
#define MAX_SUPPORT_D86 1
#define PARA_NUM 256
//动框角度参数
#define MAX_HOR 12 // 横,下标2最大值,针步
#define MAX_VER 21 // 竖,下标1最大值,转速
typedef struct
{
char softwareVerStr[BOARD_VER_LEN]; // 机头板程序版本
u32 paraBuf[PARA_NUM]; //机头板参数
u8 nodeType; // 节点类型
}__attribute__ ((packed)) HeadInfo;
typedef struct
{
HeadInfo headInfo[MAX_SUPPORT_N5]; //最大支持32个机头
}__attribute__ ((packed)) ExBoardInfo;
/*
1. UCMD_SET_MC_CONFIG,
|---------------------------------------------------------------------------------------------------------------|
|-----------------------------------------------------------------------------------|-----------|---------------|
| | | | |
|-----------------------------------------------------------------------------------|-----------|---------------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 B12 B13 | B14 B15 | B16--Bn |
|-----------------------------------------------------------------------------------|-----------|---------------|
| | | | | | B4--B13的 | |
| | UCMD_SET_MC_CONFIG | | | | | |
| 'V','L','D','P' | | | ID | | 16CRC | |
|-----------------------------------------------------------------------------------|-----------|---------------|
|---------------------------------------------------------------------------------------------------------------|
MCInfo相同512
2.
*/
// 读取机器状态
/*
1. UCMD_GET_MC_STATUS ,
|-------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------|
| | | |
|-------------------|-----------------------------------------------------------------------|-----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 B10 B11 B12 B13 | B14 B15 |
|-------------------|---------------------|-----------------|-------------------------------|-----------|
| | ID | | | B4--B13的 |
| |---------------------|-----------------|-------------------------------| |
| 'F','L','D','P' | UCMD_GET_MC_STATUS | | | 16CRC |
|-------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------|
2. DCMD_SEND_MC_STATUS ,
|-----------------------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------|-----------|---------------|
| | | | |
|-------------------------------------------------------------------------------------------|-----------|---------------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 | B12 B13 | B14 B15 | B16--Bn |
|-------------------------------------------------------------------------------------------|-----------|---------------|
| | | | | | | B4--B13的 | |
| | DCMD_SEND_MC_STATUS | | | | | | |
| 'V','L','D','P' | | | | | | 16CRC | |
|-------------------------------------------------------------------------------------------|-----------|---------------|
|-----------------------------------------------------------------------------------------------------------------------|
3. ,
1.
2. DCMD_SEND_MC_STATUS
*/
// 机器状态数据结构定义
typedef struct
{
// 0
u32 workStatus; // 工作状态位图
// .0 允许时限。=0使用时限已到不允许下位机工作=1允许下位机工作
// .1 允许状态。=0界面钳制不允许下位机工作=1允许下位机工作
// .2 机器状态。=0手动工作状态; =1自动工作状态
// .3 钥匙状态。=0关闭状态; =1打开状态
// .4 文件接收标志。= 0初始状态。= 1收到了文件
// .5 参数接收标志。= 0初始状态。= 1收到了参数
// .6 正在忙标志。= 0空闲可以接收文件和参数。= 1工作中不会接收文件和参数
// .7 上料状态。=0手动上料状态; =1自动上料状态
// .8 参数更新标志。 =1下位机更新了参数
// .9 模拟工作标志。=1, 处于模拟工作状态
// .10 允许扫描条码状态。=1, 允许
// .11 允许拍照状态。=1, 允许
// .12 正在工作标志
// .13 传感信号扫描中标志
// .14 相机校准模式中标志
// .15 调试输出中标志. = 0初始状态。= 1上位机正在测试输出信号,不响应程序内输出控制
// .16 等待标志. = 0初始状态。= 1等待外设就绪
// .17 换梭标志0初始状态1换梭中
// .18 软件遍历功能标志. =1,不允许遍历
// .19 取模板框状态
// .20 放模板框状态
// .21 匹绣, 0:退出匹绣,主轴归零 1:进入匹绣,扎针,允许移框
// .22 断线检测, 0退出断线检测状态 1进入断线检测状态
// .23 喷墨主板文件有效标志, 0:无效, 1:有效
// 1
u32 errorCode; // 错误代码
s32 fileIdx; // 文件序号
u32 dataIdx; // 数据索引
u32 runSpeed; // 运动速度
u32 runAction; // 执行动作代码 *
u32 runSteps; // 当前执行步骤 *
u32 outCounter; // 产量计数
// 8
s32 xPos; // x电机当前坐标
s32 yPos; // y电机当前坐标
u32 tempdat1[3]; // 自定义状态1
s32 embSpindleAngle; // 平绣主轴角度
u32 traverseState; // 机头板遍历状态
u32 workTimer; // 工作时长
u32 showSta; // bit0是平绣ZP主轴是否在位,0是在位1是不在位
u32 UThreadBkSta; // 面线断线状态,每一位对应一个机头
u32 DThreadBkSta; // 底线断线状态,每一位对应一个机头
u32 tempdat2; // 自定义状态2
// 20
s32 btrdPics; // 底线片数计数
s32 btrdLength; // 底线长度计数 // 激光器剩余寿命
// 22
u32 colorIdx; // 色序编码
s32 needleIdx; // 针位号
// 24
u32 msAnlge; // 主轴角度
u32 potVal; // 电位器值
// 26
u32 laserIntensity; // 激光强度(距离传感器值(脚垫包边机))
// 27
s32 workableTimer; // 可工作时间计数器(分钟)
// 28
u32 embNeedleNum; // 刺绣针数
// 29
u32 workTimeRecord; // 单片工作时间
u32 tempdat3[32-30];
} __attribute__ ((packed)) MCStatus;
#define WORK_STA_ENTIME 0x00000001 // 允许时限
#define WORK_STA_ENSTATE 0x00000002 // 允许状态
#define WORK_STA_WKAUTO 0x00000004 // 工作状态,手动自动
#define WORK_STA_KEYEN 0x00000008 // 钥匙开关状态
#define WORK_STA_FILEOK 0x00000010 // 文件接收标志。= 0初始状态。= 1收到了文件
#define WORK_STA_PARAOK 0x00000020 // 参数接收标志。= 0初始状态。= 1收到了参数
#define WORK_STA_BUSY 0x00000040 // 正在忙标志。= 0空闲可以接收文件和参数。= 1忙中不会接收文件和参数
#define WORK_STA_FEED 0x00000080 // 上料状态。=0手动上料状态; =1自动上料状态
#define WORK_STA_NEW_PARA 0x00000100 // 参数更新标志。 =1下位机更新了参数。上位机需要读取下位机的参数文件并更新
#define WORK_STA_SIMULATE 0x00000200 // 模拟工作标志。 =1机器处于模拟工作
#define WORK_STA_EN_SCAN 0x00000400 // 扫码允许。 =1允许扫码状态
#define WORK_STA_EN_PHOTO 0x00000800 // 拍照允许。 =1允许拍照状态
#define WORK_STA_WORKING 0x00001000 // 工作标志。= 1工作中
//错误代码-通用
#define ERR_NONE 0x0000 // 没有错误
#define ERR_NO_AIR 0x0002 // 气压不足
#define ERR_NOT_SAFE 0x0003 // 安全区域介入
#define ERR_EXPIRATION 0x0004 // 使用时限已到
#define ERR_DRIVER 0x0005 // 驱动器报警
#define ERR_FILL_DATA 0x0006 // 填充数据错误
#define ERR_NOT_ALLOWED 0x0007 // 不允许工作状态
#define ERR_CTRL_ERR 0x0008 // 控制错误
#define ERR_FPGA_ERR 0x0009 // 运动控制芯片版本错误
#define ERR_BUTTON_NOUP 0x000A // 等待按钮抬起超时
#define ERR_FPGA_RESET 0x000B // FPGA复位错误
#define ERR_NO_READY 0x000C // 外设未就绪
#define ERR_NO_SEND_ERR 0x000D // 传输数据错误
#define ERR_EDTION_ERR 0x000E // 程序版本错误
#define ERR_WORK_DONE 0x000F // 完成产量
#define ERR_LMT_POSITIVE 0x0010 // 正向限位
#define ERR_LMT_NEGATIVE 0x0011 // 反向限位
#define ERR_RUN_ALM 0x0012 // 运动报警
#define ERR_RUN_LIMIT 0x0013 // 运动限位
#define ERR_RUN_EMS 0x0014 // 运动急停
#define ERR_MV_PARA 0x0015 // 运动参数错误
#define ERR_MC_PARA 0x0016 // 机器参数错误
#define ERR_IN_PARA 0x0017 // 输入参数错误
#define ERR_NOT_WORKSTA 0x001A // 不能工作状态
#define ERR_NOT_MOVESTA 0x001B // 禁止移框状态
#define ERR_MTZ_RIGHT 0x001F // 归零成功
#define ERR_MTZ_ERROR 0x0020 // 归零错误
#define ERR_COOR_SYSTM 0x0021 // XY坐标系统错误
#define ERR_OUT_RANGE 0x0022 // 目标位置越界
#define ERR_X_LIT_POSI 0x0023 // X正向限位
#define ERR_X_LIT_NEGA 0x0024 // X反向限位
#define ERR_Y_LIT_POSI 0x0025 // Y正向限位
#define ERR_Y_LIT_NEGA 0x0026 // Y反向限位
#define ERR_FEED_MANUAL 0x0027 // 进料处于手动状态
#define ERR_MC_MANUAL 0x0028 // 机器处于手动状态
#define ERR_KEY_SW_OFF 0x0029 // 机器钥匙开关关闭
#define ERR_SPT_NCE 0x002B // 小台板未关闭
#define ERR_LIGHTCURTAINS1 0x002C // 光幕1介入
#define ERR_LIGHTCURTAINS2 0x002D // 光幕2介入
#define ERR_AIR_POWER 0x002E // 气压不足
#define ERR_NO_MATERIEL 0x0031 // 缺料报警
#define ERR_CUTFRAME 0x0032 // 边框切割错误
#define ERR_MC_AUTO 0x0033 // 机器处于自动状态
#define ERR_NOT_AT_OFFSET 0x0035 // 不在偏移点
#define ERR_FEED_AUTO 0x0037 // 进料处于自动状态
#define ERR_NO_DATA 0x0040 // 无数据
#define ERR_DATA_ERROR 0x0041 // 数据错误
#define ERR_GRAPH_OUT_RANGE 0x0042 // 图形超出范围
#define ERR_MS_NOT_ZERO 0x0050 // 主轴不在零位
#define ERR_HK_NOT_ZERO 0x0051 // 旋梭不在零位
#define ERR_MS_NOT_SYNC 0x0052 // 针梭不同步
#define ERR_RO_NOT_SYNC 0x0053 // 旋转不同步
#define ERR_CUTTER_NOT_POS 0x0054 // 剪刀不在回位
#define ERR_UPER_TBREAK 0x0058 // 面线断线
#define ERR_BOBBIN_TBREAK 0x0059 // 底线断线
#define ERR_NEEDLE_NOT_HIGH 0x005A // 机针不在高位
#define ERR_SEND_N1CMD_TIMOUT 0x005B // 发送主轴命令超时
#define ERR_SEND_N1CMD_FAIL 0x005C // 发送主轴命令失败
#define ERR_TRANS_TIMEOUT 0x005D // 执行命令超时
#define ERR_LIFT_TIMEOUT 0x005F // 机头升降超时
#define ERR_HEAD_NOT_SAFE 0x0060 // 机头不在安全区域
#define ERR_HD1_ND_NOT_ZERO 0x0061 // 机头1针不在零位
#define ERR_HD1_CUTTER_NOT_POS 0x0071 // 机头1剪刀不在回位
#define ERR_PUNCH_NOT_ZERO 0x0080 // 冲孔主轴不在零位
#define ERR_R_LIT_POSI 0x0081 // 旋转正向限位
#define ERR_R_LIT_NEGA 0x0082 // 旋转反向限位
#define ERR_PUNCH2_NOT_ZERO 0x0083 // 冲孔2主轴不在零位
#define ERR_CUTTER_NOT_ZERO 0x0084 // 裁刀主轴不在零位
#define ERR_XY_NOT_WP 0x0085 // XY不在工作位置
#define ERR_HEAD_NOT_POS 0x0086 // 机头不到位
#define ERR_TO_ZERO_TIMOUT 0x008E // 等待运动结束超时
#define ERR_MOVE_POS_ERR 0x008F // 移动位置错误
#define ERR_FOOT_POS 0x0093 // 压脚位置错误
#define ERR_FOOT_OUT_RANGE 0x0094 // 压脚电机位置越界
#define ERR_LIFT_OUT_RANGE 0x0095 // 机头升降位置越界
#define ERR_ROT_OUT_RANGE 0x0096 // 旋转位置越界
#define ERR_ROT_ECD_ERROR 0x0097 // 旋转编码器错误
#define ERR_LIFT_ULIMIT 0x0098 // 机头升降上限位
#define ERR_LIFT_DLIMIT 0x0099 // 机头升降下限位
#define ERR_LIFT_SYNC_ERR 0x009A // 机头升降同步错误
#define ERR_IN_NO_MAT 0x009B // 进料无物料
#define ERR_IN_MAT_ERR 0x009C // 进料物料检测异常
#define ERR_OUT_MAT_ERR 0x009D // 出料物料检测异常
#define ERR_NOTIN_SAFE_AREA 0x009E // 机头不在安全区域
#define ERR_EMB_NOT_ZERO 0x009F // 绣花主轴不在零位
#define ERR_EMB_SWND_TIMOUT 0x00A0 // 平绣换色超时
#define ERR_PUNCH_SWND_TIMOUT 0x00A1 // 冲孔换色超时
#define ERR_HD1W_LIT_POSI 0x00A2 // 机头1摆针正向限位
#define ERR_HD1W_LIT_NEGA 0x00A3 // 机头1摆针反向限位
#define ERR_HD2W_LIT_POSI 0x00A4 // 机头2摆针正向限位
#define ERR_HD2W_LIT_NEGA 0x00A5 // 机头2摆针反向限位
#define ERR_EMB_ND_ERR 0x00A6 // 平绣针位错误
#define ERR_PUNCH_ND_ERR 0x00A7 // 冲孔针位错误
#define ERR_UPER_TBREAK_A 0x00A8 // 机头A面线断线
#define ERR_UPER_TBREAK_B 0x00A9 // 机头B面线断线
#define ERR_HEAD_NOT_AT_GAP_A 0x00AA // 机头A面线断线
#define ERR_HEAD_NOT_AT_GAP_B 0x00AB // 机头B面线断线
#define ERR_NODE_ERR 0x00AC // 节点错误
#define ERR_BUS_ERR 0x00AD // 总线错误
#define ERR_ND_NUM_ERR 0x00AE // 针位数量错误
#define ERR_CAN_TIMEOUT 0x00AF // CAN通讯超时
#define ERR_EMB_HOOK_NOT_ZERO 0x00B0 // 平绣勾刀未回位
#define ERR_EMB_CUT_NOT_ZERO 0x00B1 // 平绣剪刀未回位
#define ERR_SCBE_ALM 0x00D1 // 散珠报警
#define ERR_SCBE_NO_MATERIAL 0x00D2 // 散珠缺料
#define ERR_HEAD_NUM 0x00D3 // 机头个数错误
#define ERR_READ_HEAD_PARA 0x00D4 // 读取机头板参数错误
#define ERR_CHANGE_BOBBIN 0x00F0 // 更换梭芯
#define ERR_CHANGE_BOBBIN_A 0x00F1 // 更换梭芯A
#define ERR_CHANGE_BOBBIN_B 0x00F2 // 更换梭芯B
#define ERR_CHANGE_BOBBIN_STA 0x00F3 // 机器处于更换梭芯状态
#define ERR_CHANGE_PNHPIN1 0x00F4 // 更换冲头1 lxs220607
#define ERR_CHANGE_PNHPIN2 0x00F5 // 更换冲头2
#define ERR_CHANGE_PNHPIN3 0x00F6 // 更换冲头3
#define ERR_CHANGE_PNHPIN4 0x00F7 // 更换冲头4
#define ERR_CHANGE_PNHPIN5 0x00F8 // 更换冲头5
#define ERR_CHANGE_PNHPIN6 0x00F9 // 更换冲头6
#define ERR_CHANGE_SEWND 0x00FA // 更换缝纫针
#define ERR_PUNCH3_NOT_ZERO 0x0232 // 冲孔3主轴不在零位
#define ERR_PUNCH4_NOT_ZERO 0x0233 // 冲孔4主轴不在零位
#define ERR_PUNCH_NOT_BACK 0x029F // 呼吸阀冲孔气缸不在高位
#define ERR_CMK_BTP 0x02DA // 呼吸阀冲孔上,异常
#define ERR_CMK_BBP 0x02DB // 呼吸阀冲孔下,异常
#define ERR_CMK_BPB 0x02DC // 呼吸阀冲孔下挡块伸缩,异常
#define ERR_INSTALLMENT_OK 0x0300 // 密码设置成功
#define ERR_INSTALLMENT_FAIL 0x0301 // 密码设置失败
#define ERR_MT_DRIVER_X 0x0601 // X电机驱动器报警
#define ERR_MT_DRIVER_Y 0x0602 // Y电机驱动器报警
#define ERR_MT_DRIVER_Y2 0x0603 // Y2电机驱动器报警
#define ERR_MT_DRIVER_U 0x0604 // 升降电机驱动器报警
#define ERR_MT_DRIVER_M 0x0605 // 主轴驱动器报警
#define ERR_MT_DRIVER_M2 0x0606 // 主轴2驱动器报警
#define ERR_MT_DRIVER_R 0x0607 // 旋转驱动器报警
#define ERR_MT_DRIVER_R2 0x0608 // 旋转2驱动器报警
#define ERR_CLR_BLK 0x0801 // 吸尘器阻塞
#define ERR_CLR_FULL 0x0802 // 吸尘器满料
#define ERR_OIL_AIR 0x0803 // 油泵压力异常
//机器状态判断
#define STA_NORMAL_STOP 0x0100 // 正常停止
#define STA_MTZ_SUCCESS 0x0101 // 归零成功
#define STA_WORK_PAUSE 0x0102 // 工作暂停
#define STA_WORK_OVER 0x0103 // 工作结束
#define STA_WORK_FINISH 0x0104 // 工作完成
#define STA_WORK_DONE 0x0105 // 完成产量
#define STA_EXEC_SUCCESS 0x0106 // 执行成功
#define STA_EXEC_FAILED 0x0107 // 执行失败
#define STA_WAIT_FILE 0x0108 // 等待文件
#define STA_CHANGE_BOBBIN 0x0109 // 更换梭芯
#define STA_PROCESS_FINISH 0x010A // 执行完成
#define STA_PROCESS_RUNNING 0x010B // 执行过程中
#define STA_FEED_CMPT 0x0110 // 送料完成
#define STA_EMB_CHNGCL_STOP 0x0111 // 换色停止
#define STA_EMB_FRAME_FINISH 0x0151 // 边框刺绣完成
#define STA_LINE_TBREAK 0x0152 // 断线停止
#define STA_AUTO_SOFTLIMIT 0x0153 // 自动定软限位完成
#define STA_SPINDLERATIO 0x0154 // 主轴齿轮比正常
// 设置机器状态
/*
1. UCMD_SET_MC_STATUS,
|-------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------|
| | | |
|-------------------|-----------------------------------------------------------------------|-----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 B12 B13 | B14 B15 |
|-------------------|--------------------|------------------|-----------|-------------------|-----------|
| | ID | | | | B4--B13的 |
| |--------------------|------------------|-----------|-------------------| |
| 'F','L','D','P' | UCMD_SET_MC_STATUS | | | | 16CRC |
|-------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------|
2.
*/
// 状态码定义如下-设置
#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_CLEAN_FIDX 0x000F // 索引复位
#define MC_CLEAN_BOBBIN 0x0010 // 底线计数复位
#define MC_SET_ENTRY_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_STA_EXIT_TRA 0x0023 // 退出遍历状态
#define MC_STA_EXIT_THREADBK 0x0024 // 退出断线测试
/*
1. UCMD_GET_MC_PARAS ,
|-------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------|
| | | |
|-------------------|-----------------------------------------------------------------------|-----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 B10 B11 B12 B13 | B14 B15 |
|-------------------|---------------------|-----------------|-------------------------------|-----------|
| | ID | | | B4--B13的 |
| |---------------------|-----------------|-------------------------------| |
| 'F','L','D','P' | UCMD_GET_MC_PARAS | | | 16CRC |
|-------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------|
2. DCMD_SEND_MC_PARAS ,
|-----------------------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------|-----------|---------------|
| | | | |
|-------------------------------------------------------------------------------------------|-----------|---------------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 | B12 B13 | B14 B15 | B16--Bn |
|-------------------------------------------------------------------------------------------|-----------|---------------|
| | | | | | | B4--B13的 | |
| | DCMD_SEND_MC_PARAS | | | | | | |
| 'V','L','D','P' | | | | | | 16CRC | |
|-------------------------------------------------------------------------------------------|-----------|---------------|
|-----------------------------------------------------------------------------------------------------------------------|
3.
*/
typedef struct
{
u32 buf[PARA_NUM];
} __attribute__ ((packed)) ParaStruct;
//动框角度参数结构体
typedef struct
{
// 行按照转速100--2100每100转一个档; 列按照1mm--12mm每个mm一个档
u16 xMvStAng[MAX_VER][MAX_HOR];
u16 yMvStAng[MAX_VER][MAX_HOR];
u16 enFlag; // 参数有效标志
u16 rev[0x200-MAX_VER*MAX_HOR*2-1]; // 预留
} __attribute__ ((packed)) EmbMvAng;
// 参数类型定义
#define SEW_MCPARA_MACH 0 // 缝纫机器参数
#define SEW_MCPARA_WORK 1 // 缝纫工作参数
#define SEW_MCPARA_DEF_MC 2 // 出厂默认机器配置参数(读取有效)
#define SEW_MCPARA_DEF_WK 3 // 出厂默认机器工作参数(读取有效)
#define MVSTANG_PARA 0x06 // 起始动框角度
#define SEW_REVMCPARA_MACH 0x07 // 预留机器配置参数
#define SEW_REVMCPARA_WORK 0x08 // 预留机器工作参数
// 设置机器参数
/*
1. UCMD_SET_MC_STATUS,
|---------------------------------------------------------------------------------------------------------------|
|---------------------------------------------------------------------------------------|-----------|---------------|
| | | | |
|---------------------------------------------------------------------------|-----------|-----------|---------------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 | B12 B13 | B14 B15 | B16--Bn |
|---------------------------------------------------------------|-----------|-----------|-----------|---------------|
| | | | | | | B4--B13的 | |
| | UCMD_SET_MC_STATUS | | | | | | |
| 'V','L','D','P' | | | | | | 16CRC | |
|---------------------------------------------------------------|-----------|-----------|-----------|---------------|
|-------------------------------------------------------------------------------------------------------------------|
2.
*/
// 读取传感信号
/*
1. UCMD_GET_SENSOR_BMP ,
|-------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------|
| | | |
|-------------------|-----------------------------------------------------------------------|-----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 B10 B11 B12 B13 | B14 B15 |
|-------------------|---------------------|-----------------|-------------------------------|-----------|
| | ID | | | B4--B13的 |
| |---------------------|-----------------|-------------------------------| |
| 'F','L','D','P' | UCMD_GET_SENSOR_BMP | | | 16CRC |
|-------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------|
2. DCMD_SEND_SENSOR_BMP ,
|-----------------------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------|-----------|---------------|
| | | | |
|-------------------------------------------------------------------------------------------|-----------|---------------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 B12 B13 | B14 B15 | B16--Bn |
|-------------------------------------------------------------------------------------------|-----------|---------------|
| | | | | | B4--B13的 | |
| | DCMD_SEND_SENSOR_BMP| | | | | |
| 'V','L','D','P' | | | | | 16CRC | |
|-------------------------------------------------------------------------------------------|-----------|---------------|
|-----------------------------------------------------------------------------------------------------------------------|
3.
*/
/*
1. UCMD_GET_SENSORS ,
|-------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------|
| | | |
|-------------------|-----------------------------------------------------------------------|-----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 B10 B11 B12 B13 | B14 B15 |
|-------------------|---------------------|-----------------|-------------------------------|-----------|
| | ID | | | B4--B13的 |
| |---------------------|-----------------|-------------------------------| |
| 'F','L','D','P' | UCMD_GET_SENSORS | | | 16CRC |
|-------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------|
2. DCMD_SEND_MC_PARAS ,
|-----------------------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------|-----------|---------------|
| | | | |
|-------------------------------------------------------------------------------------------|-----------|---------------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 B12 B13 | B14 B15 | B16--Bn |
|-------------------------------------------------------------------------------------------|-----------|---------------|
| | | | | | B4--B13的 | |
| | DCMD_SEND_SENSORS | | | | | |
| 'V','L','D','P' | | | | | 16CRC | |
|-------------------------------------------------------------------------------------------|-----------|---------------|
|-----------------------------------------------------------------------------------------------------------------------|
3.
*/
//--------------------------------
// 回复形式定义
#define REV_TYPE_ONCE 0 // 单次回复;下位机收到命令后发送一次回复数据
#define REV_TYPE_BEGIN 1 // 多次回复;下位机收到命令后,会主动开始发送回复数据,直到被其他命令打断。
// 传感信号位定义,传感器信号位图和传感器信号的位定义相同
typedef struct
{
// 0
u8 bitmap[1024];
} __attribute__ ((packed)) SensorsBitmap;
/*
1. UCMD_START_TRANS ,
1. UCMD_START_TRANS ,
|-----------------------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------|-----------|---------------|
| | | | |
|-----------------------------------------------------------------------|-------|-----------|-----------|---------------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 | B11 | B12 B13 | B14 B15 | B16--Bn |
|---------------------------------------------------------------|-------|-------|-----------|-----------|---------------|
| | | | | | | | B4--B13的 | |
| | UCMD_START_TRANS | | | | | ID | | |
| 'V','L','D','P' | | | | | IDX | | 16CRC | |
|---------------------------------------------------|-----------|-------|-------|-----------|-----------|---------------|
|-----------------------------------------------------------------------------------------------------------------------|
(1)
(2) IDX是传输多个数据文件时的索引号
(3) ID是文件传输中的标识
(4) DataFileHead
2.
3. UCMD_GET_TRANS_RESULT ,
|---------------------------------------------------------------------------------------------------------|
|---------------------------------------------------------------------------------------------------------|
| | | |
|-------------------|-------------------------------------------------------------------------|-----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 B10 B11 B12 B13 | B14 B15 |
|-------------------|-----------------------|-------------------|-----------------------------|-----------|
| | ID | ID | | B4--B13的 |
| |-----------------------|-------------------|-----------------------------| |
| 'F','L','D','P' | UCMD_GET_TRANS_RESULT | ID | | 16CRC |
|---------------------------------------------------------------------------------------------------------|
|---------------------------------------------------------------------------------------------------------|
4. UCMD_GET_TRANS_RESULT DCMD_SEND_TRANS_RESULT
|---------------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------------------|------------|---------------|
| | | | |
|----------------------------------------------------------------------------------------------|------------|---------------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 | B12 | B13 | B14 B15 | B16--Bn |
|----------------------------------------------------------------------------------------------|------------|---------------|
| | | | | | | | B4--B13的 | |
| | DCMD_SEND_TRANS_RESULT | | | ID | | | | |
| 'V','L','D','P' | | | | | | | 16CRC | |
|----------------------------------------------------------------------------------------------|------------|---------------|
|---------------------------------------------------------------------------------------------------------------------------|
(1) ID是 ID
(2)
(3)
(4)
5. DCMD_SEND_TRANS_RESULT
(1) TRANS_NOT_BEG, UCMD_START_TRANS UCMD_START_TRANS
(2) TRANS_READY, UCMD_START_TRANS
(3) TRANS_DOING, UCMD_TRANS_FILE_DATA
(4) TRANS_DONE,
6. UCMD_TRANS_FILE_DATA来发送文件内容
7. UCMD_GET_TRANS_RESULT
8. DCMD_SEND_TRANS_RESULT
(1) TRANS_DONE,
(2) TRANS_DOING,
9. 6--8,
*/
// 传输文件类型
#define FILE_TYPE_DAT 0x00 // 数据文件
#define FILE_TYPE_PGM 0x02 // 升级文件
#define FILE_TYPE_BOARD 0x03 // 外围板文件
#define FILE_TYPE_FRAME 0x04 // 边框刺绣文件
// 文件控制结构
// 文件传输控制结构
#define LEN_RSV_BMP MAX_EXDP_LEN // 位图大小
#define MAX_FILE_SIZE (LEN_RSV_BMP*MAX_EXDP_LEN*16) // 最大文件字节数 按位图大小设定
typedef struct
{
int transphase;
int filetransing;
int waitcount;
u8 transActive; // 传输结构有效
u8 transflag; // 接收进度标志 = 0, 接收未开始; = 1, 正在接收; = 2接收完成。
u8 fileType; // 文件类型
u8 fileIdx; // 为文件编号最多支持16个文件
u16 fileId; // 文件ID
u16 packetSize; // 包的大小
u32 packetNum; // 包的个数
DataDs16FileHead * pFileHead;
AppFileHead * pAppHead;
BoardFileHead * pBoardHead;
u8 * pDatBuff;
u16 lenBmp; // 位图有效长度
u8 rsvBitmap[LEN_RSV_BMP]; // 文件接收进度标志位图
}FileTransCtrl;
// 传输有效标志定义
#define TRANS_NONE 0x00 // 无效
#define TRANS_ACTIVE 0x5A // 有效
// 传输结果代码定义
#define TRANS_NOT_BEG 0x00 // 没有收到启动命令
#define TRANS_READY 0x01 // 准备好接收
#define TRANS_DOING 0x02 // 正在接收
#define TRANS_DONE 0x03 // 接收完成
#define TRANS_REQUEST 0x04 // 请求传输模式
/*
1. UCMD_SET_FILE_PARAS
|---------------------------------------------------------------------------------------------------------------------------|
|-----------------------------------------------------------------------------------------------|-----------|---------------|
| | | | |
|---------------------------------------------------------------------------|-------|-----------|-----------|---------------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 | B11 | B12 B13 | B14 B15 | B16--Bn |
|-------------------------------------------------------|-----------|-------|-------|-----------|-----------|---------------|
| | | | | | | | B4--B13的 | |
| | UCMD_SET_FILE_PARAS | | | | | ID | | |
| 'V','L','D','P' | | | | | IDX | | 16CRC | |
|--------------------------------------------|----------|-----------|-------|-------|-----------|-----------|---------------|
|---------------------------------------------------------------------------------------------------------------------------|
(1)
(2) IDX是文件的索引号IDX
(3) ID是文件的代号
(4) DataFilePara
2. DataFilePara
*/
// 设置执行进度
/*
1. UCMD_SET_EXEC_PROGRESS
|---------------------------------------------------------------------------------------------------------------------------|
|-----------------------------------------------------------------------------------------------|-----------|---------------|
| | | | |
|---------------------------------------------------------------------------|-------|-----------|-----------|---------------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 | B11 | B12 B13 | B14 B15 | B16--Bn |
|-------------------------------------------------------|-----------|-------|-------|-----------|-----------|---------------|
| | | | | | | | B4--B13的 | |
| | UCMD_SET_EXEC_PROGRESS | | | | | ID | | |
| 'V','L','D','P' | | | | | IDX | | 16CRC | |
|--------------------------------------------|----------|-----------|-------|-------|-----------|-----------|---------------|
|---------------------------------------------------------------------------------------------------------------------------|
(1)
(2) IDX是文件的索引号IDX
(3) ID是文件的代号
(4) FileExecPara
2. FileExecPara
*/
/*
1. UCMD_SET_DEF_PARA
|-------------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------------|
| | | |
|-------------------|-----------------------------------------------------------------------------|-----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 | B12 B13 | B14 B15 |
|-------------------|-----------------------|-------------------|---------------------------------|-----------|
| | ID | | 1 | 2 | 3 | B4--B13的 |
| |-----------------------|-------------------|---------------------------------| |
| 'F','L','D','P' | UCMD_SET_DEF_PARA | | | | | 16CRC |
|-------------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------------|
2.
*/
// 手动控制命令
/*
1. UCMD_ACT_BYHAND
|-------------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------------|
| | | |
|-------------------|-----------------------------------------------------------------------------|-----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 | B12 B13 | B14 B15 |
|-------------------|-----------------------|-------------------|---------------------------------|-----------|
| | ID | | 1 | 2 | 3 | B4--B13的 |
| |-----------------------|-------------------|---------------------------------| |
| 'F','L','D','P' | UCMD_ACT_BYHAND | | | | | 16CRC |
|-------------------------------------------------------------------------------------------------------------|
|-------------------------------------------------------------------------------------------------------------|
123
2.
*/
//----------------------------------------------------------------------------------------------------
// 控制动作定义
#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_OUTPUT 0x0006 // 测试输出OUTPUT端口(obj输出端口 1~26:主板output1~26 101~356:扩展板output1~256)
#define TEST_THREADBK 0x0007// 测试断线检测
// 归零和手动移动和电机使能的 控制参数1 定义
#define MT_LX 0x0001 // X向移动电机
#define MT_LY 0x0002 // Y向移动电机
#define MT_LM 0x0003 // 升降(压胶机)// 主轴电机
#define MT_LN 0x0004 // 针电机
#define MT_LH 0x0005 // 梭电机
#define MT_LU 0x0006 // 升降电机
#define MT_LF 0x0007 // 压脚电机
#define MT_LR 0x0008 // 旋转电机
#define MT_LRU 0x0009 // 上旋转电机
#define MT_LRD 0x000A// 下旋转电机
#define MT_LPM 0x000B // 冲孔主轴
#define MT_LP2 0x000C // 冲孔2主轴
#define MT_LCM 0x000D// 裁刀主轴
#define MT_LU2 0x000E // 升降电机2
#define MT_LW 0x000F // 摆动电机
#define MT_LMS 0x0010 // 主轴
#define MT_PR1 0x0073 // 冲孔旋转电机1
#define MT_PR2 0x0074 // 冲孔旋转电机2
// 手动移动的 控制参数2 定义
#define MT_MOVE_DIR_STOP 0x0000 // 停止转动
#define MT_MOVE_DIR_POSI 0x0001 // 正向移动x向右y向上升降向上
#define MT_MOVE_DIR_NEGA 0x0002 // 反向移动x向左y向下升降向下
// 电机使能的 控制参数2 定义
#define MT_SERVO_ON 0x0001 // 电机使能开
#define MT_SERVO_OFF 0x0002 // 电机使能关
// 输出控制参数1代码定义
#define OT_LOOSE_THREAD 0x0001 // 松紧线
#define OT_FOLLOW_EN 0x0002 // 随动允许
#define OT_UCUT_THREAD 0x0003 // 压脚 //上剪刀剪线
#define OT_DCUT_THREAD 0x0004 // 下剪刀剪线
#define OT_FRAME 0x0005 // 气框
2024-02-06 06:58:57 +00:00
#define OT_OIL 0x0006 // 加油
#define OT_LIGHT 0x0007 // 照明灯
#define OT_CUT_UP 0x0008 // 上剪线
#define OT_MID_FOOT 0x0009 // 中压脚
#define OT_LOOSE_UTRD2 0x000D// 松紧线2
#define OT_PUSH_BTRD 0x000A// 扣底线
#define OT_STAND_BTRD 0x000B // 顶底线
#define OT_CLIP_UTRD 0x000C // 夹面线
#define OT_LOOSE_UTRD2 0x000D// 松紧线2
#define OT_SEW_LIFT 0x000E // 缝纫机头升降
#define OT_PUNCH_LIFT 0x000F // 冲孔机头升降
#define OT_SEW_BLOW 0x0010 // 缝纫吹气
#define OT_PUNCH_BLOW 0x0011 // 冲孔吹气
#define OT_CLEANER 0x0012 // 吸尘器
#define OT_DCUT_THREAD_R 0x0013 // 右机头下剪刀剪线
#define OT_BIT_FOOT_R 0x0014 // 右机头大压脚
#define OT_MID_FOOT_R 0x0015 // 右机头中压脚
#define OT_PUSH_BTRD_R 0x0016 // 右机头扣底线
#define OT_STAND_BTRD_R 0x0017 // 右机头顶底线
#define OT_CLIP_UTRD_R 0x0018 // 右机头夹面线
#define OT_SEW_BLOW_R 0x0019 // 右机头缝纫吹气
#define OT_HEAD_L_CLUTH 0x001A// 左机头主轴离合
#define OT_HEAD_R_CLUTH 0x001B // 右机头主轴离合
#define OT_HEAD_R_LOOSE_THREAD 0x001C // 右机头松紧线
#define OT_HEAD_R_LOOSE_UTRD2 0x001D // 右机头松紧线2
#define OT_CUTTER_LIFT 0x001E // 切刀机头
#define OT_PRESS_KNOT 0x001F // 压枣控制
//#define OT_FRAME 0x0020// 气框开合
2024-02-06 06:58:57 +00:00
#define OT_FRAME_TEN 0x0021 // 气框拉伸
#define OT_FRAME_PRE 0x0022 // 气框压紧
#define OT_CLIP_EXTEND 0x0024 // 勾线动作 伸缩
#define OT_CLIP_EXTEND_R 0x0025 // 右机头勾线动作 伸缩
#define OT_CLIP_OPEN 0x0026 // 勾线动作 开合
#define OT_CLIP_OPEN_R 0x0027 // 右机头勾线动作 开合
#define OT_CUTDW_LIFT 0x0030 // 裁切机头下升降
#define OT_CUTUP_LIFT 0x0031 // 裁切机头上升降
#define OT_CUT_KNIFE 0x0032 // 切刀
#define OT_EMB_CUT 0x0040 // 平绣剪刀
#define OT_EMB_PUSH 0x0041 // 平绣扣线
#define OT_EMB_CLIP 0x0042 // 平绣夹面线
#define OT_EMB_OIL 0x0043 // 平绣加油
#define OT_EMB_HOOK 0x0044 // 平绣勾线
#define OT_EMB_LOCK 0x0045 // 平绣锁头
#define OT_PUNCH_OIL 0x0050 // 冲孔加油
#define OT_PUNCH_LOCK 0x0051 // 冲孔锁头
#define OT_SAFE_DOOR1 0x0054 // 安全护栏1
#define OT_SAFE_DOOR2 0x0055 // 安全护栏2
#define OT_OIL_R 0x00EB // 加油2
//控制动作
#define MT_CU 0x0010 // 裁刀升降电机 ++
#define MT_LX2 0x0011 // X2向移动电机
#define MT_LY2 0x0012 // Y2向移动电机
#define MT_LM2 0x0013 // 主轴2电机
#define MT_LB 0x0014 // 传送带
#define MT_LPU 0x0015 // 压枣升降
#define MT_LIN 0x0016 // 进料电机
#define MT_LOT 0x0018 // 出料电机
#define MT_LHM 0x0019 // 横切移动电机
#define MT_LHX 0x001A // 横切旋刀电机
#define MT_LBQ 0x001B // 边切刀电机
#define MT_LJB 0x001C // 夹布移动电机
#define MT_LH2 0x001D // 梭电机2
#define MT_LN2 0x001E // 针电机2
#define MT_LEM 0x0020 // 平绣主轴
#define MT_LLSL 0x0021 // 左上料电机
#define MT_LRSL 0x0022 // 右上料电机
#define MT_LYZR 0x0023 // 零等待 右侧Y电机
#define MT_RTN 0x0026 // 退料电机
#define MT_LPS 0x0027 // 冲孔换色电机
#define MT_LPR 0x0028 // 冲孔旋转电机
#define MT_ECM 0x0040 //平绣换色电机
#define MT_LPS2 0x0045 // 冲孔换色电机
#define MT_LMA 0x0050 // 所有主轴电机
#define MT_LP3 0x0051 // 冲孔3主轴
#define MT_LP4 0x0052 // 冲孔4主轴
#define MT_EMN 0x0077 // 平绣针主轴
#define MT_EMH 0x0078 // 平绣梭主轴
// 输出参数2
#define OT_STOP 0x0000 // 停止
#define UP_OPEN_ON 0x0001 // 上升、打开、放松、伸出
#define DOWN_CLOSE_OFF 0x0002 // 下降、关闭、加紧、收回
#define OT_ACTION 0x0003 // 动作
// 手动控制功能的代码(控制参数1) 定义-冲孔机系列
#define CUT_THREAD 0x0001 // 手动剪线
#define MAINSHAFT_ADJUST 0x0002 // 针梭校对(主轴点动)
#define ROTATE_ADJUST 0x0003 // 旋转校对
#define HEAD_LIFT_UP 0x0004 // 机头上升
#define SET_WORK_AREA 0x0005 // 设置可工作区域
2024-02-06 06:58:57 +00:00
#define SEWING_MS_RUN 0x0009 // 缝纫主轴研车
#define PUNCH_MS_RUN 0x000A // 冲孔主轴研车
#define ALL_MS_RUN 0x000B // 所有主轴研车
#define CUT_UP 0x0010 // 剪上线
#define CUT_DOWN 0x0011 // 剪下线
#define SEW_HEAD_LIFT 0x0012 // 缝纫机头升降(根据传感器状态确定上升还是下降)
#define MS_JOG 0x0013 // 点动
#define M_TO_ANGLE 0x0014 // M轴去指定角度
#define WIRE_MS_RUN 0x0015 // 主轴研车
#define XY_MOVE_LEFT 0x0016 // X左移
#define XY_MOVE_RIGHT 0x0017 // X右移
#define XY_MOVE_FRONT 0x0018 // Y前移
#define XY_MOVE_BACK 0x0019 // Y后移
#define XY_MOVE_STOP 0x001A // XY停止
#define ROT_MOVE_POSI 0x001D // 逆时针旋转
#define ROT_MOVE_MEGA 0x001E // 顺时针旋转
#define ROT_MOVE_STOP 0x001F // 旋转停止
#define AUTO_SET_START 0x0021 // 自动定起点
#define XY_AUTO_SOFTLIMIT 0x0022 // 自动定软限位
#define CHECK_CANBUS 0x0023 // 总线检测
#define PUNCH_MS_JOG 0x0030 // 多头冲孔点动
#define PUNCH_SW_KN 0x0031 // 多头冲孔换刀
#define PUNCH_CHANGE_ZERO 0x0032 // 冲孔换色
2024-02-06 06:58:57 +00:00
#define PUNCH_MS_POH 0x0035 //单次冲孔
#define PUNCH_MS_CD 0x0036 //冲头停下位
#define CHANGE_WORK_HEAD 0X0037 //机头切换
2024-02-06 06:58:57 +00:00
#define AUTO_SET_RANGE 0x0038 // 自动设定工作范围
#define PUNCH_DRAW_OUTLINE 0x003A //画轮廓线
#define PUNCH_CON_OIL 0x0077 // 冲孔连续供油
#define PUNCH_ROT_TO_ZERO 0x0078 // 冲孔旋转去零位
#define SEWING_MS_JOG 0x0084 // 缝纫机头点动
#define NEEDLE_TO_CUSP 0x0085 // 缝纫主轴去勾线位
#define HOOK_TO_CUSP 0x0086 // 梭去勾线位
#define EMB_TO_CUSP 0x0087 // 绣花主轴去勾线位
#define SHOW_M_ABSECD_VAL 0x0100 // 显示M轴绝对值编码器值
#define TEST_ADC_POTVAL 0x0102 // 测试电位器
#define EMB_MS_JOG 0x0020 // 平绣点动
#define EMB_SW_COLOR 0x0021 // 平绣换色
#define EMB_MS_RUN 0x0022 // 平绣主轴研车
#define EMB_CUT_THREAD 0x0023 // 平绣剪线
// 手动动作(压胶机)
#define ALL_TO_RESET 0x0001 // 全部复位
#define MOTO_TO_ZERO_YJ 0x0002 // 电机归零
#define STATION1_START_GLUE 0x0003 // 工位1涂胶
#define STATION2_START_GLUE 0x0004 // 工位2涂胶
#define HEAD_UP_DOWN 0x0005 // 机头升降
#define TO_STATION1_APOS 0x0006 // 回工位1起始点
#define TO_STATION2_APOS 0x0007 // 回工位2起始点
#define TO_WAITTING_POS 0x0008 // 回等料点
#define TO_REMOVE_GLUE_POS 0x0009 // 回排胶点
#define REMOVE_GLUE_ONCE 0x000A // 排一次胶
#define ADJUST_GLUE_HEGHT 0x000B // 校准胶管高度
// 机器工作命令
/*
1. UCMD_MC_WORK
|--------------------------------------------------------------------------------------------------------|
|--------------------------------------------------------------------------------------------------------|
| | | |
|-------------------|-------------------------------------------------------------------------|-----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 B10 B11 | B12 B13 | B14 B15 |
|-------------------|-----------------------|-------------------|-----------------------------|-----------|
| | ID | | 1 | 2 | B4--B13的 |
| |-----------------------|-------------------|------------------------------| |
| 'F','L','D','P' | UCMD_MC_WORK | | | | 16CRC |
|---------------------------------------------------------------------------------------------------------|
|---------------------------------------------------------------------------------------------------------|
12
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_FAST_JUMP 0x000B // 快速进退
#define WORK_GOTO_WKPOS 0x000C // 回工作点
#define WORK_GOTO_FEEDT 0x000D // 回穿线点
#define WORK_GOTO_CHGBO 0x000E // 回换梭位
#define WORK_GOTO_ZERO 0x0012 // 回零点(框架归零)
#define WORK_GOTO_GORNER 0x0013 // 回角点
#define WORK_FIX_MVFRAME 0x0017 // 定量移框
#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_GOTO_FRMMP 0x0029 // 回中心点
#define WORK_ACT_OIL 0x0050 // 工作中加油
/*
1. UCMD_MOVE_TO
|----------------------------------------------------------------------------------------------|
|---------------------------------------------------------------------------------- -----------|
| | | |
|-------------------|---------------------------------------------------------------|----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 B8 B9 | B10 B11 B12 B13 | B14 B15 |
|-------------------|-----------------------|-------------------|-------------------|----------|
| | ID | X | Y | B4--B13的 |
| |-----------------------|-------------------|-------------------| 16CRC |
| 'F','L','D','P' | UCMD_MOVE_TO | | | |
|----------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------------------|
2. XY
*/
// 下位机升级
/*
1.
2. UCMD_MC_UPDATE
|----------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------------------------------|
| | | |
|-------------------|--------------------------------------------------------------------------|-----------|
| B0 B1 B2 B3 | B4 B5 | B6 B7 | B8 B9 | B10 B11 B12 B13 | B14 B15 |
|-------------------|-----------------------|-------------------|------------------------------|-----------|
| | ID | | ID | | B4--B13的 |
| |-----------------------|-------------------|------------------------------| 16CRC |
| 'F','L','D','P' | UCMD_MC_UPDATE | | | | |
|----------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------------------------------|
(1)
(2) ID1ID
(3) 1CRC32
3.
*/
// 命令结构定义
typedef union
{
DataPacket packet;
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 toggle;
u8 rev[6];
u16 crc;
} __attribute__ ((packed)) getMcInfo; // UCMD_GET_MC_INFO 读取机器信息
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 toggle;
u8 rev[6];
u16 crc;
} __attribute__ ((packed)) getMcStatus; // UCMD_GET_MC_STATUS 读取机器状态
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 paraType;
u16 paraId;
u8 rev[4];
u16 crc;
} __attribute__ ((packed)) getMcParas; // UCMD_GET_MC_PARAS 读取机器参数
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 fromObj;
u32 begAddr;
u16 rdSize;
u16 crc;
} __attribute__ ((packed)) getMemData; // UCMD_GET_MEM_DATA 读取内存数据
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 backType;
u8 rev[6];
u16 crc;
} __attribute__ ((packed)) getSensors; // UCMD_GET_SENSORS 读取传感信号
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u8 fileType;
u8 fileIdx;
u8 rev[6];
u16 crc;
} __attribute__ ((packed)) getFileInfo; // UCMD_GET_FILE_INFO 读取文件信息
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 fileId;
u8 rev[6];
u16 crc;
} __attribute__ ((packed)) getTransResult; // UCMD_GET_TRANS_RESULT 读取传输结果
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u8 rev[8];
u16 crc;
} __attribute__ ((packed)) getSensorBmp; // UCMD_GET_SENSOR_BMP 读取传感信号
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; // UCMD_SET_MC_CONFIG 设置机器配置
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 staCode;
u16 para;
u8 rev[4];
u16 crc;
} __attribute__ ((packed)) setMcStatus; // UCMD_SET_MC_STATUS 设置机器状态
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 exLen;
u16 exCrc;
u16 paraType;
u16 paraId;
u16 crc;
u8 exData[MAX_EXDP_LEN];
} __attribute__ ((packed)) setParas; // UCMD_SET_MC_PARAS 设置下位机参数
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u8 setObj;
u8 setWord;
u32 setAddr;
u16 setData;
u16 crc;
} __attribute__ ((packed)) setMemData; // UCMD_SET_MEM_DATA 设置内存数据
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)) setFileParas; // UCMD_SET_FILE_PARAS 设置文件参数
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; // UCMD_SET_EXEC_PROGRESS 设置进度命令
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; // UCMD_SET_INSTALLMENT 设置分期密码
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;
u8 id;
u8 nodeType;
u8 rev[6];
u16 crc;
} __attribute__ ((packed)) setDefParas; // UCMD_SET_DEF_PARA 设置默认参数
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 actCode;
u16 para1;
u16 para2;
u16 para3;
u16 crc;
} __attribute__ ((packed)) actByhand; // UCMD_ACT_BYHAND 手动动作功能
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 workCode;
u32 para1;
u16 para2;
u16 crc;
} __attribute__ ((packed)) mcWork; // UCMD_MC_WORK 机器工作命令
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
s32 posx;
s32 posy;
u16 crc;
} __attribute__ ((packed)) moveFrameTo; // UCMD_MOVE_TO 移动框架到位置命令
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; // UCMD_START_TRANS 启动文件传输
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; // UCMD_TRANS_FILE_DATA 文件数据传输
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 exLen;
u16 exCrc;
u32 fileIdxMap;
u16 crc;
u8 exData[MAX_EXDP_LEN];
} __attribute__ ((packed)) setFilesList; // UCMD_SET_FILE_LIST 设置文件列表
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u8 rev[8];
u16 crc;
} __attribute__ ((packed)) getFilesList; // UCMD_GET_FILE_LIST 读取文件列表
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 upObj;
u16 upFileID;
u32 checksum;
u16 crc;
} __attribute__ ((packed)) mcUpdate; // UCMD_MC_UPDATE 系统升级
//----------------------------------
// 下位机发送命令
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)) dRequestDatBlock; // DCMD_REQUEST_DAT 请求文件数据
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)) dSendMcInfo; // DCMD_SEND_MC_INFO 发送机器信息
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;
u16 exLen;
u16 exCrc;
u16 toggle;
u8 rev[2];
u16 crc;
u8 exData[MAX_EXDP_LEN];
} __attribute__ ((packed)) dSendMcStatus; // DCMD_SEND_MC_STATUS 发送机器状态
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 exLen;
u16 exCrc;
u16 paraType;
u16 paraId;
u16 crc;
u8 exData[MAX_EXDP_LEN];
} __attribute__ ((packed)) dSendMcParas; // DCMD_SEND_MC_PARAS 发送机器参数
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 exLen;
u16 exCrc;
u32 begAddr;
u16 crc;
u8 exData[MAX_EXDP_LEN];
} __attribute__ ((packed)) dSendMemData; // DCMD_SEND_MEM_DATA 发送内存数据
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 exLen;
u16 exCrc;
u8 rev[4];
u16 crc;
u8 exData[MAX_EXDP_LEN];
} __attribute__ ((packed)) dSendSensors; // DCMD_SEND_SENSORS 发送传感信号
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)) dSendFileInfo; // DCMD_SEND_FILE_INFO 发送文件信息
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)) dSendTransResult; // DCMD_SEND_TRANS_RESULT 发送传输结果
struct
{
u8 sync[DP_SYNC_LEN];
u16 cmdCode;
u16 exLen;
u16 exCrc;
u8 rev[4];
u16 crc;
u8 exData[MAX_EXDP_LEN];
} __attribute__ ((packed)) dSendSensorBmp; // DCMD_SEND_SENSOR_BMP 发送传输结果
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)) setMacKey; // setMacKey
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; //节点类型 -rq
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 rev[2];
u16 crc;
u8 exData[MAX_EXDP_LEN];
} __attribute__ ((packed)) boardPara; // 发送外围板非易失性参数
}OperPacket;
#pragma pack(1)//设定为1字节对齐
#endif