622 lines
19 KiB
C
622 lines
19 KiB
C
#ifndef __DATADEF_H__
|
||
#define __DATADEF_H__
|
||
|
||
#include "typedef.h"
|
||
#include "config.h"
|
||
//-------------------------------------------------------------------------
|
||
|
||
#define PATTERN_LARGE_NEEDLES 1280000
|
||
|
||
#pragma pack(1)//设定为1字节对齐
|
||
|
||
// 绝对位置数据
|
||
typedef struct
|
||
{
|
||
u8 ctrl; //控制字节
|
||
u8 attr; //属性字节
|
||
WORD action;//控制动作
|
||
double ax; //X位置
|
||
double ay; //Y位置
|
||
double ar; //R角度
|
||
|
||
}__attribute__ ((packed)) DsAbsItem;
|
||
|
||
|
||
// 画图格式数据
|
||
typedef struct
|
||
{
|
||
u8 ctrl;//控制字节
|
||
u8 attr;//属性字节
|
||
|
||
u8 action[2]; //附加动作
|
||
s16 bx, by;//绘制起点
|
||
s16 ex, ey;//绘制终点
|
||
s16 ar;//角度
|
||
u32 rgb;
|
||
|
||
}__attribute__ ((packed)) DispItem;
|
||
|
||
// 执行数据定义
|
||
typedef struct
|
||
{
|
||
u8 ctrl; // 控制字节
|
||
u8 attr; // 属性字节
|
||
s16 dx; // X偏移
|
||
s16 dy; // Y偏移
|
||
s16 dr; // R偏移
|
||
u16 len; // xy分量合成长度
|
||
u8 action[2]; //附加动作
|
||
|
||
u8 rev[4]; // 保留
|
||
|
||
}__attribute__ ((packed)) DataItem, Ds16Item;
|
||
|
||
// ds8格式
|
||
typedef struct
|
||
{
|
||
u8 ctrl; // 控制字节
|
||
u8 attr; // 属性字节
|
||
s16 dx; // X偏移
|
||
s16 dy; // Y偏移
|
||
s16 dr; // R偏移
|
||
|
||
}__attribute__ ((packed)) Ds8Item;
|
||
|
||
// 兼容dsr格式
|
||
typedef struct
|
||
{
|
||
u8 ctrl; // 控制字节
|
||
u8 attr; // 属性字节
|
||
u8 dx; // X偏移
|
||
u8 dy; // Y偏移
|
||
|
||
}__attribute__ ((packed)) DsrItem, Ds4Item;
|
||
|
||
|
||
// 双字节压缩格式
|
||
typedef struct
|
||
{
|
||
s8 cdx; // X数据
|
||
s8 cdy; // Y数据
|
||
|
||
/*
|
||
格式定义
|
||
cdx x分量控制数据
|
||
cdy y分量控制数据
|
||
|
||
每个字节的最低位为控制位,高7个位为数据位。数据位的最高位是符号位。
|
||
|
||
两个控制位合在一起形成4种控制数据,定义如下:
|
||
cdx.0 cdy.0
|
||
0 0 缝纫数据,数据范围从-128 -- +126, 只有偶数可用(精度0.2mm),单位0.1mm
|
||
0 1 空走数据,数据范围从-128 -- +126, 只有偶数可用(精度0.2mm),单位0.1mm
|
||
1 0 大步空走数据,数据范围从-128 -- +126, 只有偶数可用(精度2mm),单位1mm
|
||
1 1 控制数据,数据位定义为控制码和参数 cdx 为控制码, cdx 为参数
|
||
|
||
*/
|
||
}__attribute__ ((packed)) ToBItem, Ds2Item;
|
||
|
||
#define BEADRADIUS 150 //散珠或亮片半径(用于绘制图形)
|
||
#define TOWELRADIUS 200 //毛巾半径(用于绘制图形)
|
||
|
||
// ctrl 定义
|
||
// 控制字节, 作为功能码,定义如下
|
||
|
||
#define DATA_NULL 0x00 // 文件结束
|
||
#define DATA_SEWING 0x01 // 缝纫数据, 该数据需要缝纫机针扎一次(主轴可以转动多圈(如果有跳针功能的话)), 同时 X, Y,R 偏移运动dx,dy,dr, 框步进式运动或连续运动
|
||
#define DATA_OFFSET 0x02 // 偏移数据, 该数据只移动 X, Y,R 偏移 dx,dy,dr,连续运动
|
||
#define DATA_CUTTING 0x03 // 切刀数据, 该数据需要切刀先运转,同时 X, Y,R 偏移 dx,dy,dr,根据切刀类型选择动框方式
|
||
#define DATA_LASER 0x04 // 激光数据, 该数据需要激光出光, 同时X, Y,R偏移 dx,dy,dr,框连续运动,激光强度和运动线速度有关系
|
||
#define DATA_DRAWING 0x05 // 记号数据, 该数据需要记号笔先放下来, 同时X, Y,R偏移dx,dy,dr,框连续运动
|
||
#define DATA_SEWING_R 0x06 // 右机头缝纫,该数据需要缝纫机针扎一次(主轴可以转动多圈(如果有跳针功能的话)), 同时 X, Y,R 偏移运动dx,dy,dr, 框步进式运动或连续运动
|
||
|
||
#define DATA_SECF_SEW 0x11 // 第二框缝纫
|
||
#define DATA_SECF_OFST 0x12 // 第二框偏移
|
||
|
||
#define DATA_SECF_SEW_R 0x16 // 第二框右机头缝纫,该数据需要缝纫机针扎一次(主轴可以转动多圈(如果有跳针功能的话)), 同时 X, Y,R 偏移运动dx,dy,dr, 框步进式运动或连续运动
|
||
|
||
// 兼容DSR控制码
|
||
#define DATA_SYNCSEW 0x07 // 同步缝纫数据, 该数据需要缝纫机针扎一次, 同时 X, Y,R 偏移运动 dx,dy,dr,X2, Y2 也运动 dx,dy,框步进式运动或连续运动
|
||
#define DATA_PAUSE_OLD 0x08 // 暂停
|
||
#define DATA_ANGLE_OLD 0x09 // 拐点
|
||
#define DATA_CUT_OLD 0x0A // 剪线
|
||
#define DATA_END_OLD 0x10 // 结束码
|
||
|
||
#define DATA_JUMP 0x0B // 跳针数据,该数据要求缝纫机主轴不动, 但 X, Y,R 偏移运动 dx,dy,dr, 框步进式运动或连续运动
|
||
#define DATA_PUNCH 0x0C // 冲孔数据, 该数据需要冲孔主轴运转一圈,同时 X, Y,R 偏移 dx,dy,dr,
|
||
#define DATA_EMB 0x0D // 绣花数据,该数据需要平绣针扎一次, 同时 X, Y,偏移运动dx,dy, 框步进式运动
|
||
#define DATA_CHGND_OLD 0x0E // 换色功能码 lxs 20220628添加
|
||
#define DATA_SYNCOFST 0x0F // 同步偏移数据
|
||
|
||
#define DATA_MILLING 0x21 // 铣刀数据
|
||
#define DATA_DRILL 0x22 // 钻孔数据
|
||
#define DATA_RKNIFE 0x23 // 圆刀数据, 该数据需要震刀先运转,同时 X, Y,R 偏移 dx,dy,dr,
|
||
#define DATA_SKNIFE 0x24 // 震刀数据, 该数据需要震刀先运转,同时 X, Y,R 偏移 dx,dy,dr,
|
||
|
||
#define DATA_CHENILLE 0x41 // 毛巾绣的环式数据
|
||
#define DATA_CHAIN 0x42 // 毛巾绣的链式数据
|
||
#define DATA_TOWELHIGH 0x43 // 毛巾绣的高度数据
|
||
#define DATA_COIL 0x44 // 缠绕数据
|
||
#define DATA_SAWTOOTH 0x45 // 锯齿数据
|
||
#define DATA_RIBBON 0x46 // 盘带数据
|
||
|
||
#define DATA_END 0x80 // 结束码
|
||
#define DATA_PAUSE 0x81 // 暂停功能码
|
||
#define DATA_CHGND 0x82 // 绣花换针杆功能码(换色)
|
||
#define DATA_CUTTRD 0x83 // 剪线功能码
|
||
#define DATA_ANGLE 0x89 // 拐点
|
||
|
||
#define DATA_OPEN_SEQUIN 0xFE // 开关亮片功能码(中转数据)
|
||
#define DATA_UNKNOW 0xFF // 未定义(中转数据)
|
||
|
||
// atrr, 属性字节,作为运动属性字节
|
||
// 缝纫针步的属性定义:
|
||
// dx, x向偏移值, 有符号数, 范围为 -32768--32767, 单位为 0.01mm
|
||
// dy, y向偏移值, 有符号数, 范围为 -32768--32767, 单位为 0.01mm
|
||
// dr, r向偏移值, 有符号数, 范围为 -32768--32767, 单位为 0.0001 弧度
|
||
// len, xy 分量的合成长度,无符号数,范围0--65535, 单位为 0.01mm
|
||
|
||
#define HEAD_NAME_STR_LEN 0x20
|
||
#define HEAD_FIX_INFO_LEN 0x32
|
||
#define BEADSEQUINTYPE 0x20 //珠片码的种类,31种,第一个为预留
|
||
|
||
// 数据文件头
|
||
typedef struct
|
||
{
|
||
// 0x00
|
||
char fileName[32]; // 文件名称
|
||
// 0x20
|
||
u32 dataSize; // 数据字节数
|
||
u32 itemNums; // 数据项个数
|
||
u16 bytesPerItem; // 每项占的字节数
|
||
u16 bytesPerBlk; // 数据内容划分块大小
|
||
u32 dataChecksum; // 数据累加校验和
|
||
// 0x30
|
||
u16 checkCrc; // 前面6个字段的CRC校验,(6个字段分别为:文件名称,字节数,项个数,每项字节数,每块字节数,数据累加和的CRC校验值)
|
||
// 0x32
|
||
u8 begHead; //以哪种类型的机头定点 之前是u8
|
||
u8 reserved0;
|
||
// 0x34 52
|
||
u32 fileid; // 文件唯一标识符,识别是否为同一个文件
|
||
// 0x38
|
||
u8 reserved1[0x40-0x38]; // 保留区
|
||
// 0x40 64
|
||
s32 anchorX; // 定位点坐标X
|
||
s32 anchorY; // 定位点坐标Y
|
||
// 0x48
|
||
s32 beginX; // 数据起点坐标X
|
||
s32 beginY; // 数据起点坐标Y
|
||
s32 beginR; // 数据起点坐标Z
|
||
// 0x54 //84
|
||
s32 minX;
|
||
s32 maxX;
|
||
s32 minY;
|
||
s32 maxY; // 轮廓范围
|
||
|
||
//用于存储适用于下位机的反复绣设置,需要7个字节
|
||
//0x64
|
||
u8 mcXRepeatNum;//x向反复次数
|
||
//0x65
|
||
s16 mcXRepeatSpace;//x向反复间距
|
||
//0x67
|
||
u8 mcYRepeatNum;//y向反复次数
|
||
//0x68
|
||
s16 mcYRepeatSpace;//y向反复间距
|
||
//0x6A
|
||
u8 mcPriority;//反复优先级
|
||
|
||
// 0x6B
|
||
u8 reserved2[0x74-0x6B]; // 保留区
|
||
// 0x74 116
|
||
s32 coloLockrNeedle; //换色锁针针数
|
||
// 0x78 120
|
||
s32 jumpNeedleChange; // 跳针变越框锁针针数(用于跳针前后加锁针)
|
||
// 0x7C 124
|
||
s32 minStep; //合并小针步时的针步大小(过滤)
|
||
// 0x80 128
|
||
s32 rotateStyle; //旋转式样
|
||
//132
|
||
s32 horizontalStyle; //水平翻转式样
|
||
//136
|
||
s32 verticalStyle; //垂直翻转式样
|
||
//140
|
||
s32 rotateAngle; //旋转角度
|
||
//144
|
||
s32 xZoom; //X向倍率
|
||
//148
|
||
s32 yZoom; //Y向倍率
|
||
//152
|
||
s32 repeatStyle; //反复方式
|
||
//156
|
||
s32 priority; //优先次序
|
||
//160
|
||
s32 xRepeatNum; //X向反复次数
|
||
//164
|
||
s32 yRepeatNum; //Y向反复次数
|
||
//168
|
||
s32 xRepeatSpace; //X向反复间距
|
||
//172
|
||
s32 yRepeatSpace; //Y向反复间距
|
||
//176
|
||
s32 stepCompensation; //针步补偿
|
||
//180
|
||
s32 xCompensate; //X向补偿
|
||
//184
|
||
s32 yCompensate; //Y向补偿
|
||
//188
|
||
|
||
s32 lockNeedlesNum; //锁针次数
|
||
//192
|
||
s32 lockNeedlesStepNum; //锁针步数
|
||
//196
|
||
s32 lockNeedlesStepLength; //锁针针步长度
|
||
//200
|
||
s32 combineMode; //双头组合模式
|
||
//204
|
||
s32 breakLineParkNum; //断线停车次数
|
||
//绣花机中需要插入跳针的针步大小,不用计入参数id,
|
||
//因为此值变化数据步数会变,从而改变了fileid
|
||
//208 //0xD0
|
||
u16 convertJumpStepSize;
|
||
//210 //0xD2
|
||
u16 jumpStepSize;
|
||
//212 //0xD4
|
||
u16 pleatedMode;//是否为褶绣模式
|
||
//214 //0xD6
|
||
u8 reserved3[0x118-0xD6];//保留
|
||
//280 0x118
|
||
u32 offsetEn; // bit0,偏移点X向允许 0,不允许 1,允许
|
||
// // bit1,偏移点Y向允许 0,不允许 1,允许
|
||
// // bit2,平绣数据有无 0,无 1,有
|
||
// // bit3,激光数据有无 0,无 1,有
|
||
// // bit4,毛巾链式数据有无 0,无 1,有
|
||
// // bit5,缠绕锯齿盘带数据有无 0,无 1,有
|
||
// 284 //0x11C
|
||
s32 offsetX; // 偏移点X
|
||
// 288 // 0x120
|
||
s32 offsetY;
|
||
//292 0x124
|
||
s32 threeCombineMode; //三头组合模式
|
||
//296 0x128
|
||
u8 reserved4[0x1E0-0x128];//保留 //原来是0xD0
|
||
|
||
//0x1E0
|
||
u8 beadSequinTable[BEADSEQUINTYPE]; // 珠片码与散珠/亮片动作码对应表
|
||
|
||
// 0x200
|
||
u8 switchTable[0x400-0x200]; // 色序设定表, 支持512个色序设定
|
||
|
||
}__attribute__ ((packed)) DataFileHead;//中间数据(fcg)
|
||
|
||
//ds16头文件
|
||
typedef struct
|
||
{
|
||
// 0x00
|
||
char fileName[32]; // 文件名称
|
||
// 0x20
|
||
u32 dataSize; // 数据字节数
|
||
u32 itemNums; // 数据项个数
|
||
u16 bytesPerItem; // 每项占的字节数
|
||
u16 bytesPerBlk; // 数据内容划分块大小
|
||
u32 dataChecksum; // 数据累加校验和
|
||
// 0x30
|
||
u16 checkCrc; // 前面6个字段的CRC校验,(6个字段分别为:文件名称,字节数,项个数,每项字节数,每块字节数,数据累加和的CRC校验值)
|
||
// 0x32
|
||
u8 begHead; //以哪种类型的机头定点 之前是u8
|
||
u8 reserved0;
|
||
// 0x34
|
||
u32 fileid; // 文件唯一标识符,识别是否为同一个文件
|
||
|
||
// 0x38
|
||
u32 jumpNeedleNum; // 跳针数(绣花机)
|
||
u16 colorNum; // 颜色数(绣花机)
|
||
u16 towelHighNum; // 毛巾高度数
|
||
// 0x40
|
||
s32 anchorX; // 定位点坐标X
|
||
s32 anchorY; // 定位点坐标Y
|
||
// 0x48
|
||
s32 beginX; // 数据起点坐标X
|
||
s32 beginY; // 数据起点坐标Y
|
||
s32 beginR; // 数据起点坐标Z
|
||
// 0x54 //84
|
||
s32 minX;
|
||
s32 maxX;
|
||
s32 minY;
|
||
s32 maxY; // 轮廓范围
|
||
// 0x64
|
||
u32 sizeX;
|
||
u32 sizeY; // 裁片大小
|
||
// 0x6C
|
||
s32 anchorX2; // 定位点坐标X2
|
||
s32 anchorY2; // 定位点坐标Y2
|
||
s32 beginX2; // 数据起点坐标X2
|
||
s32 beginY2; // 数据起点坐标Y2
|
||
s32 beginR2; // 数据起点坐标Z2
|
||
// 0x80
|
||
u32 runAct; // 附加动作,
|
||
// bit0: 0:完成后不拍照 1:完成后拍照
|
||
// 132//0X84
|
||
u32 offsetEn; // bit0,偏移点X向允许 0,不允许 1,允许
|
||
// // bit1,偏移点Y向允许 0,不允许 1,允许
|
||
// // bit2,平绣数据有无 0,无 1,有
|
||
// // bit3,激光数据有无 0,无 1,有
|
||
// // bit4,毛巾链式数据有无 0,无 1,有
|
||
// // bit5,缠绕锯齿盘带数据有无 0,无 1,有
|
||
// // bit6,反复优先级 0,X向优先 1,Y向优先
|
||
// 136 //0x88
|
||
s32 offsetX; // 偏移点X
|
||
// 140 // 0x8C
|
||
s32 offsetY;
|
||
// 0x90
|
||
u8 xRepeatNums; // X向反复次数,范围0-99,默认0
|
||
u8 yRepeatNums; // Y向反复次数
|
||
s32 xRepeatDistance; // X向反复距离,单位mm,精度0.01,范围-100000-100000,默认0
|
||
s32 yRepeatDistance; // Y向反复距离
|
||
|
||
// 0x9A
|
||
u8 reserved3[0x100-0x9A];
|
||
// 0x100
|
||
u8 reserved4[0x200-0x100];
|
||
// 0x200
|
||
u8 switchTable[0x400-0x200]; // 色序设定表, 支持512个色序设定
|
||
}__attribute__ ((packed)) DataDs16FileHead;//下发给主控的ds16文件头
|
||
|
||
typedef struct
|
||
{
|
||
// 0
|
||
char HMIVerStr[16]; // 界面版本
|
||
|
||
// 4
|
||
u32 machineNumber; // 机器编号
|
||
|
||
// 5
|
||
u16 motorNum; //电机个数
|
||
u16 debugProgress; //调试进度
|
||
// 6
|
||
char fileName[32]; // 文件名称
|
||
|
||
#if(0)
|
||
// 52
|
||
char sensorStartBtn; // 启动按钮1
|
||
char sensorStopBtn; // 暂停按钮1
|
||
char sensorJogBtn; // 点动按钮1
|
||
char sensorMainFrameXZeroPos; // 主框架X零位
|
||
char sensorMainFrameYZeroPos; // 主框架Y零位
|
||
char sensorMainFrameXNegLimit; // 主框架X负限位
|
||
char sensorMainFrameYNegLimit; // 主框架Y负限位
|
||
char sensorMainFrameXPosLimit; // 主框架X正限位
|
||
char sensorMainFrameYPosLimit; // 主框架Y正限位
|
||
char sensorScissorsReturn; // 剪刀回位
|
||
#endif
|
||
|
||
//14
|
||
char deliveryTime[32]; //交付日期
|
||
|
||
//22
|
||
u32 workProgress; //机器工作进度(花样执行进度)
|
||
|
||
//26
|
||
u32 workState; //工作状态
|
||
|
||
//27
|
||
u32 startPins; //开始针数
|
||
|
||
//28
|
||
u32 endPins; //结束针数
|
||
|
||
//29
|
||
quint64 startTime; //开始时间
|
||
|
||
//31
|
||
quint64 endTime; //结束时间
|
||
|
||
//33
|
||
u32 outCounter; //产量统计
|
||
|
||
//34
|
||
u32 rev2[256-34];
|
||
|
||
} __attribute__ ((packed)) HMILotData; // 界面物联网数据
|
||
|
||
//-------------------------------------------------------------------------
|
||
|
||
#define HEADBUF 8192 //512x16
|
||
#define PATCHCOLORBUF 512 //512(u16)
|
||
#define PATCHNEEDLEBUF 10
|
||
#define TOWELHIGHBUF 1024
|
||
|
||
//贴布绣按针参数结构体
|
||
struct NeedlePatch
|
||
{
|
||
u32 needleIdx;
|
||
u16 move;
|
||
};
|
||
|
||
// 数据文件头
|
||
typedef struct
|
||
{
|
||
DataFileHead fileHead; // 数据文件头
|
||
u8 colorOrderEmbHead[HEADBUF]; // 隔头 每个色序对应的16个机头是否开启
|
||
// u8 ifPatch;//是否设置了贴布绣
|
||
u16 patchColorEmb[PATCHCOLORBUF]; // 贴布绣 每个色序对应的设置位置
|
||
NeedlePatch patchNeedleEmb[PATCHNEEDLEBUF]; // 贴布绣 针数索引对应的设置位置
|
||
}__attribute__ ((packed)) cfgDataFileHead;
|
||
|
||
//开位线绣节点坐标
|
||
struct OpenLineNode
|
||
{
|
||
int nodeX;
|
||
int nodeY;
|
||
};
|
||
|
||
typedef struct
|
||
{
|
||
s32 rotateStyle; //旋转式样
|
||
s32 rotateAngle; //旋转角度
|
||
s32 xZoom; //X向倍率
|
||
s32 yZoom; //Y向倍率
|
||
s32 repeatStyle; //反复方式
|
||
s32 priority; //优先次序
|
||
s32 xRepeatNum; //X向反复次数
|
||
s32 yRepeatNum; //Y向反复次数
|
||
s32 xRepeatSpace; //X向反复间距
|
||
s32 yRepeatSpace; //Y向反复间距
|
||
|
||
s32 lockNeedlesNum; //锁针次数
|
||
s32 lockNeedlesStepNum; //锁针针步
|
||
s32 lockNeedlesStepLength; //锁针针步长度
|
||
|
||
s32 xCompensate; //X向补偿
|
||
s32 yCompensate; //Y向补偿
|
||
} __attribute__ ((packed)) PatternParaStruct;
|
||
|
||
//-------------------------------------
|
||
// 花样参数类型定义
|
||
|
||
|
||
// 升级文件头
|
||
typedef struct
|
||
{
|
||
// 0x00
|
||
char fileName[32]; // 文件名称
|
||
// 0x20
|
||
u32 dataSize; // 数据字节数
|
||
u32 dataChecksum; // 数据累加校验和
|
||
|
||
// 0x28
|
||
u8 reserved1[0x30-0x28]; // 保留区1
|
||
// 0x30
|
||
u8 reserved2[0x64-0x30]; // 保留区1
|
||
|
||
// 0x64
|
||
u8 reserved3[0x80-0x64]; // 保留区2
|
||
|
||
// 0x80
|
||
u8 reserved4[0x100-0x80];
|
||
}__attribute__ ((packed)) AppFileHead;
|
||
|
||
|
||
// 外围板文件头
|
||
typedef struct
|
||
{
|
||
// 0x00
|
||
char fileName[32]; // 文件名称
|
||
// 0x20
|
||
u32 dataSize; // 数据字节数
|
||
u32 dataChecksum; // 数据累加校验和
|
||
|
||
u8 protocol; // 文件要发给的协议类型
|
||
u8 nodeid; // 文件要发给的节点ID,0为广播
|
||
u8 fileType; // 文件类型
|
||
u8 nodeType; // 文件要发给的节点类型 -rq
|
||
|
||
// 0x2C
|
||
u8 reserved1[0x30-0x2C]; // 保留区1
|
||
|
||
// 0x30
|
||
u8 reserved2[0x64-0x30]; // 保留区2
|
||
|
||
// 0x64
|
||
u8 reserved3[0x80-0x64]; // 保留区3
|
||
|
||
// 0x80
|
||
u8 reserved4[0x100-0x80]; // 保留区4
|
||
}__attribute__ ((packed)) BoardFileHead;
|
||
|
||
// 文件参数结构
|
||
typedef struct
|
||
{
|
||
// 0x00
|
||
u8 hdIdenti[0x40];
|
||
|
||
// 0x40
|
||
s32 anchorX; // 定位点坐标X
|
||
s32 anchorY; // 定位点坐标Y
|
||
// 0x48
|
||
s32 beginX; // 数据起点坐标X
|
||
s32 beginY; // 数据起点坐标Y
|
||
s32 beginR; // 数据起点坐标Z
|
||
|
||
// 0x54
|
||
s32 minX;
|
||
s32 maxX;
|
||
s32 minY;
|
||
s32 maxY; // 轮廓范围
|
||
|
||
// 0x64
|
||
u32 sizeX;
|
||
u32 sizeY; // 裁片大小
|
||
|
||
// 0x6C
|
||
s32 anchorX2; // 定位点坐标X2
|
||
s32 anchorY2; // 定位点坐标Y2
|
||
s32 beginX2; // 数据起点坐标X2
|
||
s32 beginY2; // 数据起点坐标Y2
|
||
s32 beginR2; // 数据起点坐标Z2
|
||
|
||
// 0x80
|
||
u8 reserved3[0x200-0x80];
|
||
// 0x200
|
||
u8 switchNeedleTable[0x400-0x200]; // 色序设定表, 支持512个色序设定
|
||
|
||
}__attribute__ ((packed)) DataFilePara;
|
||
|
||
|
||
typedef struct
|
||
{
|
||
s32 anchorX; // 定位点坐标X
|
||
s32 anchorY; // 定位点坐标Y
|
||
s32 beginX; // 数据起点坐标X
|
||
s32 beginY; // 数据起点坐标Y
|
||
|
||
}__attribute__ ((packed)) DataFilePos;
|
||
//-------------------------------------------------------------------------
|
||
|
||
// 文件执行参数结构
|
||
typedef struct
|
||
{
|
||
u32 newIdx;
|
||
s32 newXPos;
|
||
s32 newYPos;
|
||
s32 newRPos;
|
||
u32 newColorIdx; // 新针位
|
||
u32 newHighIdx; // 新高度(绣花机毛巾高度)
|
||
u32 mvFrameFlag; // 移框标志
|
||
|
||
u32 rev[256-7];
|
||
}__attribute__ ((packed)) FileExecPara;
|
||
|
||
//-------------------------------------------------------------------------
|
||
|
||
//参数文件头
|
||
struct ParaFile
|
||
{
|
||
unsigned char s_head[4] ; // 默认 PARA
|
||
int s_type ; // 默认 0
|
||
int s_len ; // 数据 默认 4096
|
||
|
||
unsigned int s_para_buff[1024] ; //工作 参数体
|
||
|
||
unsigned short s_crc ; //参数体的CRC
|
||
|
||
unsigned short rev ; //预留 保持 结构体四字节对齐
|
||
};
|
||
|
||
// 组合文件的文件头
|
||
typedef struct strCombHead
|
||
{
|
||
// 0x00 - 0x03
|
||
u32 totalFilesNum; //组合的总的文件数
|
||
|
||
// 0x04
|
||
u32 fileByte[0x100-0x04]; //用于保存每个文件的字节数
|
||
}__attribute__ ((packed)) CombHead;
|
||
//-------------------------------------------------------------------------
|
||
//#pragma pack(1)//设定为1字节对齐
|
||
|
||
//-------------------------------------------------------------------------
|
||
|
||
#endif
|
||
|
||
|