optical/EMBOS/Users/EmbFunc/operator/datadef.h

446 lines
12 KiB
C
Raw Permalink Normal View History

2025-09-04 01:45:08 +00:00
#ifndef __DATADEF_H__
#define __DATADEF_H__
#include "config.h"
//-------------------------------------------------------------------------
// ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
typedef struct
{
u8 ctrl; // <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
u8 attr; // <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
s16 dx; // Xƫ<58><C6AB>
s16 dy; // Yƫ<59><C6AB>
s16 dr; // Rƫ<52><C6AB>
u16 len; // xy<78><79><EFBFBD><EFBFBD><EFBFBD>ϳɳ<CFB3><C9B3><EFBFBD>
u8 action[2]; //<2F><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>
u8 rev[4];
}__attribute__ ((packed)) DataItem, Ds16Item;
typedef struct
{
u8 ctrl; // <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
u8 attr; // <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
s16 dx; // Xƫ<58><C6AB>
s16 dy; // Yƫ<59><C6AB>
s16 dr; // Rƫ<52><C6AB>
}__attribute__ ((packed)) Ds8Item;
typedef struct
{
u8 ctrl; // <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
u8 attr; // <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
u8 dx; // Xƫ<58><C6AB>
u8 dy; // Yƫ<59><C6AB>
}__attribute__ ((packed)) DsrItem, Ds4Item;
// ˫<>ֽ<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ʽ
typedef struct
{
s8 cdx; // X<><58><EFBFBD><EFBFBD>
s8 cdy; // Y<><59><EFBFBD><EFBFBD>
/*
<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cdx x<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cdy y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ÿ<EFBFBD><EFBFBD><EFBFBD>ֽڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>7<EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD>4<EFBFBD>ֿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
cdx.0 cdy.0
0 0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><EFBFBD>-128 -- +126, ֻ<EFBFBD><EFBFBD>ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0.2mm<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ0.1mm
0 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><EFBFBD>-128 -- +126, ֻ<EFBFBD><EFBFBD>ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0.2mm<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ0.1mm
1 0 <EFBFBD>󲽿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><EFBFBD>-128 -- +126, ֻ<EFBFBD><EFBFBD>ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2mm<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ1mm
1 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><EFBFBD><EFBFBD> cdx Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, cdx Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
}__attribute__ ((packed)) ToBItem, Ds2Item;
// ctrl <20><><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>, <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_NULL 0x00 // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
#define DATA_SEWING 0x01 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>, ͬʱ X, Y<><59>R ƫ<><C6AB><EFBFBD>˶<EFBFBD>dx,dy,dr<64><72> <20>򲽽<EFBFBD>ʽ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>
#define DATA_OFFSET 0x02 // ƫ<><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>ƶ<EFBFBD> X, Y<><59>R ƫ<><C6AB> dx,dy,dr<64><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>
#define DATA_CUTTING 0x03 // <20>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ͬʱ X, Y<><59>R ƫ<><C6AB> dx,dy,dr<64><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>񶯿<EFBFBD><F1B6AFBF><EFBFBD>ʽ
#define DATA_LASER 0x04 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ͬʱX, Y<><59><52><C6AB> dx,dy,dr<64><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>Ⱥ<EFBFBD><C8BA>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6>й<EFBFBD>ϵ
#define DATA_DRAWING 0x05 // <20>Ǻ<EFBFBD><C7BA><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ǻű<C7BA><C5B1>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>, ͬʱX, Y<><59><52><C6AB>dx,dy,dr<64><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>
#define DATA_SEWING_R 0x06 // <20>һ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ң<EFBFBD><D2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>, ͬʱ X, Y<><59>R ƫ<><C6AB><EFBFBD>˶<EFBFBD>dx,dy,dr<64><72> <20>򲽽<EFBFBD>ʽ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>
#define DATA_SECF_SEW 0x11 // <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_SECF_OFST 0x12 // <20>ڶ<EFBFBD><DAB6><EFBFBD>ƫ<EFBFBD><C6AB>
#define DATA_SECF_SEW_R 0x16 // <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD>һ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ң<EFBFBD><D2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>Ȧ(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵĻ<DCB5>)), ͬʱ X, Y<><59>R ƫ<><C6AB><EFBFBD>˶<EFBFBD>dx,dy,dr<64><72> <20>򲽽<EFBFBD>ʽ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>
// <20><><EFBFBD><EFBFBD>DSR<53><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_SYNCSEW 0x07 // ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>, ͬʱ X, Y<><59>R ƫ<><C6AB><EFBFBD>˶<EFBFBD> dx,dy,dr<64><72>X2, Y2 Ҳ<>˶<EFBFBD> dx,dy<64><79><EFBFBD>򲽽<EFBFBD>ʽ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>
#define DATA_PAUSE_OLD 0x08 // <20><>ͣ
#define DATA_ANGLE_OLD 0x09 // <20>յ<EFBFBD>
#define DATA_CUT_OLD 0x0A // <20><><EFBFBD><EFBFBD>
#define DATA_END_OLD 0x10 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_JUMP 0x0B // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>,<2C><><EFBFBD><EFBFBD>ͷ, X, Y<><59>R ƫ<><C6AB><EFBFBD>˶<EFBFBD> dx,dy,dr<64><72> <20>򲽽<EFBFBD>ʽ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>
#define DATA_PUNCH 0x0C // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>תһȦ<D2BB><C8A6>ͬʱ X, Y<><59>R ƫ<><C6AB> dx,dy,dr<64><72>
#define DATA_EMB 0x0D // <20><EFBFBD><E5BBA8><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫƽ<D2AA><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>, ͬʱ X, Y<><59>ƫ<EFBFBD><C6AB><EFBFBD>˶<EFBFBD>dx,dy<64><79> <20>򲽽<EFBFBD>ʽ<EFBFBD>˶<EFBFBD>
#define DATA_CHGND_OLD 0x0E // <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_SYNCOFST 0x0F // ͬ<><CDAC>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_MILLING 0x21 // ϳ<><CFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_DRILL 0x22 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_RKNIFE 0x23 // Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҪԲ<D2AA><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ͬʱ X, Y<><59>R ƫ<><C6AB> dx,dy,dr<64><72>
#define DATA_SKNIFE 0x24 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ͬʱ X, Y<><59>R ƫ<><C6AB> dx,dy,dr<64><72>
#define DATA_TAPE_OFST 0x25 // ֯<><D6AF>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_WHEEL 0x26 // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_PRESSURE 0x27 // ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_OPTI 0x28 // <20><>˿<EFBFBD><CBBF><EFBFBD><EFBFBD>
#define DATA_BASE1 0x2A // <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
#define DATA_BASE2 0x2B // <20><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>
#define DATA_BASE3 0x2C // <20><><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD>
#define DATA_EKNIFE1 0x2D // ƫ<>ĵ<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
#define DATA_EKNIFE2 0x2E // ƫ<>ĵ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>
#define DATA_CHENILLE 0x41 // ë<><C3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_CHAIN 0x42 // <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
#define DATA_HIGHT 0x43 // <20>߶<EFBFBD><DFB6><EFBFBD><EFBFBD><EFBFBD><><C3AB><EFBFBD><EFBFBD>)
#define DATA_COIL 0x44 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_ZIGZAG 0x45 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_RIBBON 0x46 // <20>̴<EFBFBD><CCB4><EFBFBD><EFBFBD><EFBFBD>
#define DATA_END 0x80 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_PAUSE 0x81 // <20><>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_CHGND 0x82 // <20><EFBFBD><E5BBA8><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD><EBA3A8>ɫ<EFBFBD><C9AB>
#define DATA_CUTTRD 0x83 // <20><><EFBFBD>߹<EFBFBD><DFB9><EFBFBD><EFBFBD><EFBFBD>
#define DATA_CUT_TAPE 0x84 // <20><>֯<EFBFBD><D6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_MOVE_PHOTO 0x85 // <20>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ㹦<D5B5><E3B9A6><EFBFBD><EFBFBD>
#define DATA_GET_IMAGE 0x86 // <20><><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD>
#define DATA_ANGLE 0x89 // <20>յ<EFBFBD>
// atrr, <20><><EFBFBD><EFBFBD><EFBFBD>ֽڣ<D6BD><DAA3><EFBFBD>Ϊ<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB2BD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>
// attr.7, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵȼ<C8B5>H
// attr.6, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵȼ<C8B5>L
// attr.5, <20><><EFBFBD><EFBFBD>
// attr.4, <20><><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>־
// attr.3, <20><><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־(=0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
// attr.2, <20><><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־(=0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
// attr.1, <20>ٶȵȼ<C8B5>H
// attr.0, <20>ٶȵȼ<C8B5>L
#define ATTR_CLAMP_LV 0xC0 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵȼ<C8B5>
#define ATTR_RESEW 0x10 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
#define ATTR_FOOT_LV 0x60 // ѹ<>Ÿ߶ȵȼ<C8B5>
#define ATTR_R_TOUP 0x08 // <20><><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־(=0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
#define ATTR_L_TOUP 0x04 // <20><><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־(=0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
#define ATTR_SPD_LV 0x03 // <20>ٶȵȼ<C8B5>
// <20><EFBFBD><EFBFBD><EBB2BD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>
// attr.5, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
#define ATTR_JUMP 0x20 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
#define EMB_ACTION 0x20 // <20><><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>
// <20><>Ƭ
#define ACT_SEQUIN1 0x01
#define ACT_SEQUIN2 0x02
#define ACT_SEQUIN3 0x03
#define ACT_SEQUIN4 0x04
#define ACT_SEQUIN5 0x05
#define ACT_SEQUIN6 0x06
#define ACT_SEQUIN7 0x07
#define ACT_SEQUIN8 0x08
#define ACT_SEQUIN9 0x09
#define ACT_SEQUIN10 0x0A
#define ACT_SEQUIN11 0x0B
#define ACT_SEQUIN12 0x0C
// ɢ<><C9A2>
#define ACT_SCBEAD1 0x11
#define ACT_SCBEAD2 0x12
#define ACT_SCBEAD3 0x13
#define ACT_SCBEAD4 0x14
#define ACT_SCBEAD5 0x15
#define ACT_SCBEAD6 0x16
// <20><><EFBFBD><EFBFBD>ë<EFBFBD><C3AB>
#define ACT_EASYCHENILLE 0x20
#define WIRE_ACTION 0x40 // <20><><EFBFBD>߻<EFBFBD><DFBB><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>
#define ACT_ZIGZAGL 0x01 // <20><> Զ<><D4B6><EFBFBD><EFBFBD>λ
#define ACT_ZIGZAGR 0x02 // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
// ϳ<><CFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>
// attr.7, <20><><EFBFBD><EFBFBD>
// attr.6, <20><><EFBFBD><EFBFBD>
// attr.5, <20><><EFBFBD><EFBFBD>
// attr.4, <20><><EFBFBD><EFBFBD>
// attr.3, <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>HH
// attr.2, <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>HL
// attr.1, <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>LH
// attr.0, <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>LL
#define ATTR_HIGH_MARK 0x0F // ϳ<><CFB3><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// dx, x<><78>ƫ<EFBFBD><C6AB>ֵ, <20>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>, <20><>ΧΪ -32768--32767, <20><>λΪ 0.01mm
// dy, y<><79>ƫ<EFBFBD><C6AB>ֵ, <20>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>, <20><>ΧΪ -32768--32767, <20><>λΪ 0.01mm
// dr, r<><72>ƫ<EFBFBD><C6AB>ֵ, <20>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>, <20><>ΧΪ -32768--32767, <20><>λΪ 0.0001 <20><><EFBFBD><EFBFBD>
// len, xy <20><><EFBFBD><EFBFBD><EFBFBD>ĺϳɳ<CFB3><C9B3><EFBFBD>,<2C>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>,<2C><>Χ0--65535, <20><>λΪ 0.01mm
//-------------------------------------------------------------------------
#ifndef PULSE_PER_MM
#define PULSE_PER_MM (100) // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#define RADIAN_ACCURACY 10000 // <20><><EFBFBD><EFBFBD>֮һ<D6AE><D2BB><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------
// <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
#define MAX_SWITCH_NEEDLE 512 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>
// ƽ<><C6BD>
#define EMB_NEEDNO_MIN 1
#define EMB_NEEDNO_MAX 32 // ƽ<><C6BD><EFBFBD>廨 1 -- 32 <20><><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>
#define PUNCH_NEEDNO_MIN 33
#define PUNCH_NEEDNO_MAX 48 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 33 -- 48 <20><><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>
#define SEW_NEEDNO_MIN 49
#define SEW_NEEDNO_MAX 50
// <20>̴<EFBFBD>
#define RIBBON_NEEDNO_MIN 51
#define RIBBON_NEEDNO_MAX 52
#define RIBBON_NEEDNO_MODE1 51 // <20>̴<EFBFBD>ģʽ1 <09><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD>
#define RIBBON_NEEDNO_MODE2 52 // <20>̴<EFBFBD>ģʽ2 <09><><EFBFBD><EFBFBD>
// ë<><C3AB>
#define CHENILLE_NEEDNO_MIN 53
#define CHENILLE_NEEDNO_MAX 68
// <20><>ʽ
#define CHAIN_NEEDNO_MIN 69
#define CHAIN_NEEDNO_MAX 84
// <20><><EFBFBD><EFBFBD>
#define COIL_NEEDNO_MIN 85
#define COIL_NEEDNO_MAX 100
#define COIL_NEEDNO_L1 85 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
#define COIL_NEEDNO_L2 86 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2
#define COIL_NEEDNO_L3 87 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3
#define COIL_NEEDNO_L4 88 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4
#define COIL_NEEDNO_R1 89 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
#define COIL_NEEDNO_R2 90 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2
#define COIL_NEEDNO_R3 91 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3
#define COIL_NEEDNO_R4 92 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4
#define COIL_EMB_NEEDNO 93 // <20><><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>(ʹ<>ò<EFBFBD><C3B2>ƻ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>)
// <20><><EFBFBD><EFBFBD>
#define SAWTOOTH_NEEDNO_MIN 101
#define SAWTOOTH_NEEDNO_MAX 112
#define SAWTOOTH_NEEDNO_MODE1 101 // <20><><EFBFBD><EFBFBD>ģʽ1
#define SAWTOOTH_NEEDNO_MODE2 102 // <20><><EFBFBD><EFBFBD>ģʽ2
#define SAWTOOTH_NEEDNO_MODE3 103 // <20><><EFBFBD><EFBFBD>ģʽ3
#define SAWTOOTH_NEEDNO_MODE4 104 // <20><><EFBFBD><EFBFBD>ģʽ4
#define SAWTOOTH_NEEDNO_MODE5 105 // <20><><EFBFBD><EFBFBD>ģʽ5
#define SAWTOOTH_NEEDNO_MODE6 106 // <20><><EFBFBD><EFBFBD>ģʽ6
// <20><><EFBFBD><EFBFBD>,<2C><>ͬɫ<CDAC><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>и<EFBFBD><D0B8>ٶ<EFBFBD>,<2C>ɵ͵<C9B5><CDB5><EFBFBD>
#define LASER_NEEDNO_MIN 113
#define LASER_NEEDNO_MAX 122
#define LASER_NEEDNO_SPEED1 113
#define LASER_NEEDNO_SPEED2 114
#define LASER_NEEDNO_SPEED3 115
#define LASER_NEEDNO_SPEED4 116
#define LASER_NEEDNO_SPEED5 117
#define LASER_NEEDNO_SPEED6 118
#define LASER_NEEDNO_SPEED7 119
#define LASER_NEEDNO_SPEED8 120
#define LASER_NEEDNO_SPEED9 121
#define LASER_NEEDNO_SPEED10 122
// <20><><EFBFBD><EFBFBD>
#define CUT_NEEDNO 123
// <20><><EFBFBD><EFBFBD>
#define HOLE_NEEDNO 124
// <20><>ͣ
#define PAUSE_SW_CODE 255
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ͷ
//-------------------------------------------------------------------------
typedef union
{
u8 buff[0x400];
struct
{
// 0x00
u8 hdIdenti[0x40];
u8 fileparas[0x400 - 0x40];
} __attribute__ ((packed)) headparts; //
struct
{
// 0x00
char fileName[32]; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
// 0x20
u32 dataSize; // <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
u32 itemNums; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u16 bytesPerItem; // ÿ<><C3BF>ռ<EFBFBD><D5BC><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
u16 bytesPerBlk; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB>ֿ<EFBFBD><D6BF><EFBFBD>С
u32 dataChecksum; // <20><><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
u16 checkCrc; // ǰ<><C7B0>6<EFBFBD><36><EFBFBD>ֶε<D6B6>CRCУ<43><EFBFBD><E9A3AC>6<EFBFBD><36><EFBFBD>ֶηֱ<CEB7>Ϊ<EFBFBD><CEAA><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼӺ͵<D3BA>CRCУ<43><D0A3>ֵ<EFBFBD><D6B5>
// 0x32
u8 begHead; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵Ļ<CDB5>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u8 rev0;
u32 fileid; // <20>ļ<EFBFBD>Ψһ<CEA8><D2BB>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD>Ƿ<EFBFBD>Ϊͬһ<CDAC><D2BB><EFBFBD>ļ<EFBFBD>
// 0x38
u8 reserved1[0x40-0x38]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
// 20221114 <20><><EFBFBD><EFBFBD><E5BBA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ռ<>ô<EFBFBD>8<EFBFBD>ֽ<EFBFBD>,<2C><EFBFBD><E5BBA8><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>ʹ<EFBFBD><CAB9>
// 0x40
s32 anchorX; // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X
s32 anchorY; // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y
// 0x48
s32 beginX; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X
s32 beginY; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y
s32 beginR; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Z
// 0x54
s32 minX;
s32 maxX;
s32 minY;
s32 maxY; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
// 0x64
u32 sizeX;
u32 sizeY; // <20><>Ƭ<EFBFBD><C6AC>С
// 0x6C
s32 anchorX2; // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X2
s32 anchorY2; // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y2
s32 beginX2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X2
s32 beginY2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y2
s32 beginR2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>R2
// 0x80
u32 runAct; // <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>,
// bit0: 0:<3A><><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1:<3A><><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD><EFBFBD>
// 0x84
u32 EnFlag; //
// bit0,ƫ<>Ƶ<EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1,<2C><><EFBFBD><EFBFBD>
// bit1,ƫ<>Ƶ<EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1,<2C><><EFBFBD><EFBFBD>
// bit2,
// bit3,
// bit4,
// bit5,
// bit6,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD> 0,X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1,Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
s32 offsetX; // ƫ<>Ƶ<EFBFBD>X
s32 offsetY;
// 0x90
u8 xRepeatNums; // X<>򷴸<EFBFBD><F2B7B4B8><EFBFBD><EFBFBD><EFBFBD>,<2C><>Χ0-99,Ĭ<><C4AC>0
u8 yRepeatNums; // Y<>򷴸<EFBFBD><F2B7B4B8><EFBFBD><EFBFBD><EFBFBD>
s32 xRepeatDistance; // X<>򷴸<EFBFBD><F2B7B4B8><EFBFBD><EFBFBD><EFBFBD>,<2C><>λmm,<2C><><EFBFBD><EFBFBD>0.01,<2C><>Χ-100000-100000,Ĭ<><C4AC>0
s32 yRepeatDistance; // Y<>򷴸<EFBFBD><F2B7B4B8><EFBFBD><EFBFBD><EFBFBD>
// 0x9A
u16 pressureHigh2; // <20><>ѹ2, <09><>Χ 0--65.000<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ0.001mm
u16 pressureHigh3; // <20><>ѹ3, <09><>Χ 0--65.000<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ0.001mm
u16 pressureHigh5; // <20><>ѹ5, <09><>Χ 0--65.000<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ0.001mm
u16 pressureHigh6; // <20><>ѹ6, <09><>Χ 0--65.000<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ0.001mm
u16 pressureHigh7; // <20><>ѹ7, <09><>Χ 0--65.000<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ0.001mm
u16 pressureHigh8; // <20><>ѹ8, <09><>Χ 0--65.000<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ0.001mm
u16 pressureHigh9; // <20><>ѹ9, <09><>Χ 0--65.000<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ0.001mm
// 0xA8
u8 reserved2[0x200-0xA8];
// 0x200
u8 switchNeedleTable[0x400-0x200]; // ɫ<><C9AB><EFBFBD><EFBFBD><E8B6A8>, ֧<><D6A7>512<31><32>ɫ<EFBFBD><C9AB><EFBFBD>
} __attribute__ ((packed)) fileHead; // <20>ļ<EFBFBD>ͷ
}DataFileHead;
typedef struct
{
s32 anchorX;
s32 anchorY;
s32 beginX;
s32 beginY;
}__attribute__ ((packed)) DataFilePara; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>ļ<EFBFBD>ִ<EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD>
typedef struct
{
u32 newIdx;
s32 newXPos;
s32 newYPos;
s32 newRPos;
u32 newColorIdx; // <20><><EFBFBD><EFBFBD>λ
u32 newHighIdx; // <20>¸߶<C2B8>(<28><EFBFBD><E5BBA8>ë<EFBFBD><C3AB><EFBFBD>߶<EFBFBD>)
u32 mvFrameflag; // <20>ƿ<EFBFBD><C6BF><EFBFBD>־(<28><><EFBFBD><EFBFBD>ִ<EFBFBD>н<EFBFBD><D0BD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7>ƿ<EFBFBD>)
u32 rev[256-7];
}__attribute__ ((packed)) FileExecPara;
//-------------------------------------------------------------------------
void ReSetFileParaOld(DataFilePara * pNewPara);
void ReSetFilePara(DataFileHead * pNewPara);
u16 GetFileParaCheckCrc(void);
//-------------------------------------------------------------------------
#ifndef MAX_EX_SW_ND
#define MAX_EX_SW_ND 512 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>ɫ<EFBFBD><C9AB>
#endif
#define TEMP_DATA1 0x01
#define TEMP_DATA2 0x02
#define TEMP_DATA3 0x03
#define TEMP_DATA4 0x04
//-------------------------------------------------------------------------
#endif