435 lines
12 KiB
C
435 lines
12 KiB
C
|
|
|
|||
|
|
#ifndef __WORKCTRL_H__
|
|||
|
|
#define __WORKCTRL_H__
|
|||
|
|
|
|||
|
|
#include "config.h"
|
|||
|
|
|
|||
|
|
#include "datafile.h"
|
|||
|
|
#include "operator.h"
|
|||
|
|
#include "motos.h"
|
|||
|
|
#include "nvpara.h"
|
|||
|
|
#include "controlbus.h"
|
|||
|
|
|
|||
|
|
#include "ocom.h"
|
|||
|
|
|
|||
|
|
#if (CUR_MACHINE == MACH_EMB)
|
|||
|
|
#include "embroidery.h"
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if (CUR_MACHINE == MACH_WIRE)
|
|||
|
|
#include "wire.h"
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if (CUR_MACHINE == MACH_BEDSKIRT)
|
|||
|
|
#include "bedSkirt.h"
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if (CUR_MACHINE == MACH_PES)
|
|||
|
|
#include "pes.h"
|
|||
|
|
#endif
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>״̬
|
|||
|
|
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
// 0
|
|||
|
|
u32 workStatus; // <20><><EFBFBD><EFBFBD>״̬λͼ
|
|||
|
|
// .0 <20><><EFBFBD><EFBFBD>ʱ<EFBFBD>ޡ<EFBFBD>=0<><30>ʹ<EFBFBD><CAB9>ʱ<EFBFBD><CAB1><EFBFBD>ѵ<EFBFBD><D1B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// .1 <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>=0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǯ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// .2 <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>=0<><30><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>״̬; =1<><31><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
|
// .3 Կ<><D4BF>״̬<D7B4><CCAC>=0<><30><EFBFBD>ر<EFBFBD>״̬; =1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
|
// .4 <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ձ<EFBFBD>־<EFBFBD><D6BE>= 0<><30><EFBFBD><EFBFBD>ʼ״̬<D7B4><CCAC>= 1<><31><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
|
// .5 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ձ<EFBFBD>־<EFBFBD><D6BE>= 0<><30><EFBFBD><EFBFBD>ʼ״̬<D7B4><CCAC>= 1<><31><EFBFBD>յ<EFBFBD><D5B5>˲<EFBFBD><CBB2><EFBFBD>
|
|||
|
|
// .6 <20><><EFBFBD><EFBFBD>æ<EFBFBD><C3A6>־<EFBFBD><D6BE>= 0<><30><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>= 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// .7 <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>=0<><30><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>״̬; =1<><31><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
|
// .8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>־<EFBFBD><D6BE> =1<><31><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
|||
|
|
// .9 ģ<><EFBFBD><E2B9A4><EFBFBD><EFBFBD>־<EFBFBD><D6BE>=1, <20><><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><E2B9A4>״̬
|
|||
|
|
// .10 <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>=1, <20><><EFBFBD><EFBFBD>
|
|||
|
|
// .11 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>=1, <20><><EFBFBD><EFBFBD>
|
|||
|
|
// .12 <20><><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
// .13 <20><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD>б<EFBFBD>־
|
|||
|
|
// .14 <20><><EFBFBD><EFBFBD>Уģʽ<C4A3>б<EFBFBD>־
|
|||
|
|
// .15 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>־. = 0<><30><EFBFBD><EFBFBD>ʼ״̬<D7B4><CCAC>= 1<><31><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>,<2C><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// .16 <20>ȴ<EFBFBD><C8B4><EFBFBD>־. = 0<><30><EFBFBD><EFBFBD>ʼ״̬<D7B4><CCAC>= 1<><31><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// .17 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>0<EFBFBD><30><EFBFBD><EFBFBD>ʼ״̬<D7B4><CCAC>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// .18 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD>־. =1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// .19 ȡģ<C8A1><C4A3><EFBFBD><EFBFBD>״̬
|
|||
|
|
// .20 <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>״̬
|
|||
|
|
// .21 ƥ<><C6A5>, 0:<3A>˳<EFBFBD>ƥ<EFBFBD><C6A5>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1:<3A><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5>,<2C><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD>
|
|||
|
|
// .22 <20><><EFBFBD><EFBFBD><DFBC>⣬ 0<><30><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>״̬<D7B4><CCAC> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>״̬
|
|||
|
|
// .23 <20><>ī<EFBFBD><C4AB><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ч<EFBFBD><D0A7>־, 0:<3A><>Ч, 1:<3A><>Ч
|
|||
|
|
// .25 ɾ<><C9BE><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>־, 0:<3A><>Ч, 1:<3A><>Ч
|
|||
|
|
// .26 <20><><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><D8B7>ļ<EFBFBD>, 0:<3A><>Ч, 1:<3A><>Ч
|
|||
|
|
|
|||
|
|
// 1
|
|||
|
|
u32 errorCode; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
s32 fileIdx; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u32 dataIdx; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u32 runSpeed; // <20>˶<EFBFBD><CBB6>ٶ<EFBFBD>
|
|||
|
|
u32 runAction; // ִ<>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *
|
|||
|
|
u32 runSteps; // <20><>ǰִ<C7B0>в<EFBFBD><D0B2><EFBFBD> *
|
|||
|
|
u32 outCounter; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// 8
|
|||
|
|
u32 tempdat[12]; // <20>Զ<EFBFBD><D4B6><EFBFBD>״̬
|
|||
|
|
|
|||
|
|
// 20
|
|||
|
|
s32 btrdPics; // <20><><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
s32 btrdLength; // <20><><EFBFBD>߳<EFBFBD><DFB3>ȼ<EFBFBD><C8BC><EFBFBD>
|
|||
|
|
|
|||
|
|
// 22
|
|||
|
|
u32 colorIdx; // ɫ<><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
s32 curEncPos; // <20><>ǰλ<C7B0><CEBB>
|
|||
|
|
|
|||
|
|
// 24
|
|||
|
|
u32 msAnlge;
|
|||
|
|
u32 potVal;
|
|||
|
|
s32 needleIdx; // <20><>λ<EFBFBD><CEBB>
|
|||
|
|
|
|||
|
|
// 27
|
|||
|
|
s32 workableTimer; // <20>ɹ<EFBFBD><C9B9><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>
|
|||
|
|
|
|||
|
|
// 28
|
|||
|
|
u32 embNeedleNum; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// 29
|
|||
|
|
u32 workTimeRecord; // <20><>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
u32 clipLv;
|
|||
|
|
u32 tempdat3;
|
|||
|
|
|
|||
|
|
// // 20230517<31><37>չ
|
|||
|
|
// // 32
|
|||
|
|
// u32 tempdat4[8];
|
|||
|
|
//
|
|||
|
|
// // 40
|
|||
|
|
// u32 tempdat5[8];
|
|||
|
|
//
|
|||
|
|
// // 48
|
|||
|
|
// u32 tempdat6[8];
|
|||
|
|
//
|
|||
|
|
// // 56
|
|||
|
|
// u32 tempdat7[64-56];
|
|||
|
|
|
|||
|
|
} __attribute__ ((packed)) MCStatus;
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#define WORK_STA_ENTIME 0x00000001 // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
#define WORK_STA_ENSTATE 0x00000002 // <20><><EFBFBD><EFBFBD>״̬
|
|||
|
|
#define WORK_STA_WKAUTO 0x00000004 // <20><><EFBFBD><EFBFBD>״̬
|
|||
|
|
#define WORK_STA_KEYEN 0x00000008 // Կ<><D4BF>״̬
|
|||
|
|
#define WORK_STA_FILEOK 0x00000010 // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ձ<EFBFBD>־<EFBFBD><D6BE>= 0<><30><EFBFBD><EFBFBD>ʼ״̬<D7B4><CCAC>= 1<><31><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
|
#define WORK_STA_PARAOK 0x00000020 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ձ<EFBFBD>־<EFBFBD><D6BE>= 0<><30><EFBFBD><EFBFBD>ʼ״̬<D7B4><CCAC>= 1<><31><EFBFBD>յ<EFBFBD><D5B5>˲<EFBFBD><CBB2><EFBFBD>
|
|||
|
|
#define WORK_STA_BUSY 0x00000040 // <20><><EFBFBD><EFBFBD>æ<EFBFBD><C3A6>־<EFBFBD><D6BE>= 0<><30><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>= 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define WORK_STA_NEW_PARA 0x00000100 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>־<EFBFBD><D6BE> =1<><31><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ȡ<EFBFBD><C8A1>λ<EFBFBD><CEBB><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define WORK_STA_SIMULATE 0x00000200 // ģ<><EFBFBD><E2B9A4><EFBFBD><EFBFBD>־<EFBFBD><D6BE> =1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><E2B9A4>
|
|||
|
|
#define WORK_STA_EN_SCAN 0x00000400 // ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8>״̬
|
|||
|
|
#define WORK_STA_WORKING 0x00001000 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>= 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define WORK_STA_SENSOR 0x00002000 // <20><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD>б<EFBFBD>־. = 0<><30><EFBFBD><EFBFBD>ʼ״̬<D7B4><CCAC>= 1<><31><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><E2B4AB><EFBFBD>ź<EFBFBD>,<2C><><EFBFBD>а<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>Ӧ
|
|||
|
|
#define WORK_STA_OUTPUT 0x00008000 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>־. = 0<><30><EFBFBD><EFBFBD>ʼ״̬<D7B4><CCAC>= 1<><31><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>,<2C><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define WORK_STA_WAIT 0x00010000 // <20>ȴ<EFBFBD><C8B4><EFBFBD>־. = 0<><30><EFBFBD><EFBFBD>ʼ״̬<D7B4><CCAC>= 1<><31><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define WORK_STA_CHG_HOOK 0x00020000 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>0<EFBFBD><30><EFBFBD><EFBFBD>ʼ״̬<D7B4><CCAC>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define WORK_STA_TRAVERSE 0x00040000 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD>־. 0,<2C><>ʼ״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. 1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define WORK_STA_CLOTH 0x00200000 // ƥ<><C6A5>, 0:<3A>˳<EFBFBD>ƥ<EFBFBD><C6A5>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1:<3A><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5>,<2C><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD>
|
|||
|
|
#define WORK_STA_DETBK 0x00400000 // <20><><EFBFBD><EFBFBD><DFBC><EFBFBD> 0<><30><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>״̬<D7B4><CCAC> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>״̬
|
|||
|
|
|
|||
|
|
#define WORK_STA_FRM_CHK 0x02000000 // ģ<>嵽λ<E5B5BD><CEBB>־<EFBFBD><D6BE>0<EFBFBD><30>δ<EFBFBD><CEB4>λ<EFBFBD><CEBB>1<EFBFBD><31><EFBFBD><EFBFBD>λ
|
|||
|
|
#define WORK_STA_RFID_SCAN 0x04000000 // RFIDʶ<44><CAB6><EFBFBD><EFBFBD>־<EFBFBD><D6BE>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define WORK_STA_ALL_STOP (WORK_STA_SENSOR|WORK_STA_OUTPUT|WORK_STA_GET_FLM|WORK_STA_PUT_FLM) // <20><>ֹ<EFBFBD><D6B9>Ӧ<EFBFBD>κζ<CEBA><CEB6><EFBFBD>״̬
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
u16 id;
|
|||
|
|
u16 cfg;
|
|||
|
|
u16 mod;
|
|||
|
|
}AxisItem;
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
// 0
|
|||
|
|
s32 motospos[AXIS_NUM]; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
|
// 6
|
|||
|
|
u32 fileID; // <20>ļ<EFBFBD><C4BC><EFBFBD>ʶ<EFBFBD><CAB6>
|
|||
|
|
u32 dataIdx; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u32 runSteps; // <20><>ǰִ<C7B0>в<EFBFBD><D0B2><EFBFBD>
|
|||
|
|
u32 outCounter; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u32 btrdPics; // <20><><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ()
|
|||
|
|
u32 btrdLength; // <20><><EFBFBD>߳<EFBFBD><DFB3>ȼ<EFBFBD><C8BC><EFBFBD> ()
|
|||
|
|
u32 fileCheck; // <20>ļ<EFBFBD>У<EFBFBD><D0A3>
|
|||
|
|
u32 mcType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
s32 fileIdx; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u32 fileIdxMap; // <20>ļ<EFBFBD>λͼ
|
|||
|
|
u32 hookPlateCount; // <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD><CCBC><EFBFBD>
|
|||
|
|
s32 sendCount; //
|
|||
|
|
|
|||
|
|
u32 embNeedleNum; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// 18
|
|||
|
|
u8 rev[MAX_SAVE_SIZE-(AXIS_NUM+13)*sizeof(u32)];
|
|||
|
|
u16 enFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>־
|
|||
|
|
} __attribute__ ((packed)) SavedPara;
|
|||
|
|
|
|||
|
|
//----------------------------
|
|||
|
|
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
MCStatus cursta;
|
|||
|
|
MCStatus oldsta;
|
|||
|
|
|
|||
|
|
SavedPara savedpara; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//-----------------------
|
|||
|
|
u32 paraEnFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>־
|
|||
|
|
//-----------------------
|
|||
|
|
u32 boardId; // <20>忨ID
|
|||
|
|
|
|||
|
|
//-----------------------
|
|||
|
|
|
|||
|
|
// <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u32 posEnFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>־
|
|||
|
|
int zeroEnFlag; // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>־
|
|||
|
|
s32 zeroPosList[AXIS_NUM*10]; // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ֵ
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int workAvaible; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣨<EFBFBD><EAA3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩<EFBFBD><EAA3A9>Ч<EFBFBD><D0A7>־
|
|||
|
|
s32 workPos[AXIS_NUM*10]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,*10<31><30>Ϊ<EFBFBD><CEAA>Ԥ<EFBFBD><D4A4>
|
|||
|
|
|
|||
|
|
//-----------------------
|
|||
|
|
|
|||
|
|
int curmsrpm; // <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
|
|||
|
|
int chrpmflag; // ת<>ٸı<D9B8><C4B1><EFBFBD>־
|
|||
|
|
u32 expectedOutput; // Ԥ<>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//-----------------------
|
|||
|
|
int stopFlag; // <20><><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9>־
|
|||
|
|
int sendStaWhenRun; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>״̬<D7B4><CCAC>־
|
|||
|
|
|
|||
|
|
//-----------------------
|
|||
|
|
int chBobbinPics; // <20><><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC>
|
|||
|
|
int chBobbinLength; // <20><><EFBFBD><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3>ȣ<EFBFBD><C8A3><EFBFBD>λ0.01mm<EFBFBD><EFBFBD>
|
|||
|
|
//-----------------------
|
|||
|
|
// <20><>ɫ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int almflashRed; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8>־
|
|||
|
|
int almredSta; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
|
int almflashGreen; // <20>̵<EFBFBD><CCB5><EFBFBD>˸<EFBFBD><CBB8>־
|
|||
|
|
int almgreenSta; // <20><><EFBFBD>̵<EFBFBD>״̬
|
|||
|
|
int almflashYello; // <20>Ƶ<EFBFBD><C6B5><EFBFBD>˸<EFBFBD><CBB8>־
|
|||
|
|
int almyelloSta; // <20><><EFBFBD>Ƶ<EFBFBD>״̬
|
|||
|
|
int almflashBee; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8>־
|
|||
|
|
int almbeeSta; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
|
int almSta; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
|
|
|||
|
|
//-----------------
|
|||
|
|
|
|||
|
|
int cansetelapsed;
|
|||
|
|
|
|||
|
|
//-----------------
|
|||
|
|
int stopShiftFlag;
|
|||
|
|
//-----------------
|
|||
|
|
|
|||
|
|
int embMendTrdFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
int embMendEndIdx; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int mendEndPatternIdx; // 20230601 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ɿ绨<C9BF><E7BBA8>
|
|||
|
|
|
|||
|
|
//-----------------
|
|||
|
|
|
|||
|
|
int requestFlag; // <20><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־, =0,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =1,<2C><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//-----------------
|
|||
|
|
int workStopFlag;
|
|||
|
|
int olderr;
|
|||
|
|
int fileScanFlag;
|
|||
|
|
int fileScanSaveId;
|
|||
|
|
int fileScanOldId;
|
|||
|
|
int fileScanId;
|
|||
|
|
//-----------------
|
|||
|
|
u32 stopShiftEn;
|
|||
|
|
int stopShiftDx;
|
|||
|
|
int stopShiftDy;
|
|||
|
|
|
|||
|
|
int stopBtnFlag;
|
|||
|
|
|
|||
|
|
void (*WorkRunTask)(void);
|
|||
|
|
void (*AsynchronousTask)(void);
|
|||
|
|
|
|||
|
|
}WorkCtrl;
|
|||
|
|
|
|||
|
|
//----------------------------
|
|||
|
|
|
|||
|
|
#ifdef _IN_WORKCTRL_C
|
|||
|
|
WorkCtrl g_workCtrl;
|
|||
|
|
#else
|
|||
|
|
extern WorkCtrl g_workCtrl;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
//----------------------------
|
|||
|
|
|
|||
|
|
void InitWorkCtrl(void);
|
|||
|
|
void InitAppCallback(void);
|
|||
|
|
void WorkCtrlTask(void);
|
|||
|
|
void TasksWhenDelay(void);
|
|||
|
|
void DelayRef(u32 ms);
|
|||
|
|
void DelayAndAsyncExe(u32 ms);
|
|||
|
|
void DelayRefFt(u32 ms);
|
|||
|
|
|
|||
|
|
//----------------------------
|
|||
|
|
void RefreshWorkTimeEn(void);
|
|||
|
|
|
|||
|
|
void SaveWorkNvPara(void);
|
|||
|
|
|
|||
|
|
void RefreshStatus(void);
|
|||
|
|
void RefreshParas(int flag);
|
|||
|
|
void SetNewParasFlag(int flag);
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
void RequestBoardVer(void); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>汾
|
|||
|
|
int CreateBoardVer(OperPacket * pPkt, u8 protocol, u8 nodeId, u8 nodeType, BoardRegVal * pRegVal);
|
|||
|
|
int CreateHeadBoardPara(OperPacket * pPkt, u8 nodeId, u8 nodeType, u8* pData);
|
|||
|
|
int CreateColorBoardPara(OperPacket * pPkt, u8 nodeId, u8* pData);
|
|||
|
|
|
|||
|
|
int RequestHeadNvParas(int nodetype, int nodeid, int paraid, u32 * pBuf);
|
|||
|
|
void SetHeadNvPara(int nodetype, int nodeid, int paraid, u32 * pBuf);
|
|||
|
|
int CreateHeadNvParas(OperPacket * pPkt, u8 nodetype, u8 nodeId, u8 paraid, u8* pData);
|
|||
|
|
|
|||
|
|
int CreateMcInfo(OperPacket * pPkt, int toggle);
|
|||
|
|
int CreateMcStatus(OperPacket * pPkt, int toggle);
|
|||
|
|
|
|||
|
|
int CreateFileList(OperPacket * pPkt, int toggle);
|
|||
|
|
|
|||
|
|
void SensorsStatus(int mode, u8 * buf);
|
|||
|
|
int CreateSensorsStatus(OperPacket * pPkt);
|
|||
|
|
int CreateSensorsBmp(OperPacket * pPkt);
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
void TraverseTask(u8 protocol, u8 nodeId, u8 nodeType, int traNum); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
void SetMcStatus(u32 sta, u32 para);
|
|||
|
|
|
|||
|
|
int ControlByHand(OperPacket * pPkt);
|
|||
|
|
|
|||
|
|
void MotoToZero(u16 obj);
|
|||
|
|
void MoveMotoByHand(u16 obj, u16 dir, u16 spd);
|
|||
|
|
void OutputByHand(u16 obj, u16 act, u16 para);
|
|||
|
|
void MotosServoCtrl(u16 obj, u16 onoff);
|
|||
|
|
void ManualActionCtrl(u16 obj, u16 para2, u16 para3);
|
|||
|
|
void TestThreadBreak(int type, int needle, int head);
|
|||
|
|
void ShakeFrameTest(u16 ofstx, u16 ofsty, u16 runspd);
|
|||
|
|
|
|||
|
|
|
|||
|
|
int ControlWork(OperPacket * pPkt);
|
|||
|
|
int ControlWorkWhenWorking(OperPacket * pPkt);
|
|||
|
|
|
|||
|
|
void ChangeRpm(int rpmchg);
|
|||
|
|
void AllToReset(void);
|
|||
|
|
void AllToZero(void);
|
|||
|
|
int GotoStartPos(void);
|
|||
|
|
int GotoAnchorPos(void);
|
|||
|
|
int GotoOffsetPos(void);
|
|||
|
|
void SetOffsetPos(void);
|
|||
|
|
int GotoWorkPos(void);
|
|||
|
|
int GotoFinishPos(void);
|
|||
|
|
int GotoFeedPos(void);
|
|||
|
|
void SetFeedPos(void);
|
|||
|
|
int GotoFrameZeroPos(void);
|
|||
|
|
int CheckFrame(void);
|
|||
|
|
void SimulationFrame(void);
|
|||
|
|
int FastJump(u32 idx);
|
|||
|
|
void OilingInWorking(u32 para1);
|
|||
|
|
int MoveFrameToPos(s32 posx, s32 posy);
|
|||
|
|
int FixMoveFrame(s32 xmvmnt, s32 yxmvmnt);
|
|||
|
|
|
|||
|
|
void MoveFrameTo(OperPacket * pPkt);
|
|||
|
|
void MoveFrameAsOfst(OperPacket * pPkt);
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
int ReportError(int errCode);
|
|||
|
|
void CleanError(void);
|
|||
|
|
|
|||
|
|
void SetLightStaByCode(int errCode);
|
|||
|
|
|
|||
|
|
int IsStatusChanged(void);
|
|||
|
|
void SendStatus(int force);
|
|||
|
|
|
|||
|
|
void CheckSensorAndPos(void);
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
void CheckAndRequestData(void);
|
|||
|
|
|
|||
|
|
void SetFileOkFlag(int flag);
|
|||
|
|
|
|||
|
|
void SaveFileIdxFromDatafile(void);
|
|||
|
|
|
|||
|
|
int GetDatIndex(void);
|
|||
|
|
int DatIndexInc(void);
|
|||
|
|
int DatIndexDec(void);
|
|||
|
|
|
|||
|
|
void ChangeWorkPos(DataItem * pDatItem, int dir);
|
|||
|
|
int GetWorkPosFromIndex(void);
|
|||
|
|
|
|||
|
|
int SetExecProgress(OperPacket * pPkt);
|
|||
|
|
|
|||
|
|
void SetDatIdxToStart(void);
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
// <20><>ȡ<EFBFBD><C8A1>ˢ<EFBFBD>µ<EFBFBD><C2B5><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
|
void ReadMotosPos(void);
|
|||
|
|
void ReadAndFreshMotosPos(void);
|
|||
|
|
void NormalRefPosition(u32 para, s32 * posilist);
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#define SET_MOTO_ZERO(mt) do\
|
|||
|
|
{\
|
|||
|
|
if (g_workCtrl.zeroEnFlag == DATA_VALID && (g_workCtrl.posEnFlag & mt##_MOD) == (mt##_MOD))\
|
|||
|
|
{\
|
|||
|
|
printf("\r\nset %s zero = %d \r\n", #mt, list[mt##_IDX]);\
|
|||
|
|
printf("before set, zero is %d\r\n", g_workCtrl.zeroPosList[mt##_IDX]);\
|
|||
|
|
temp = list[mt##_IDX] - g_workCtrl.zeroPosList[mt##_IDX]; /* <20><>ǰ<EFBFBD><C7B0>λ<EFBFBD><CEBB>ԭ<EFBFBD><D4AD>λ<EFBFBD>IJ<EFBFBD> */\
|
|||
|
|
temp += g_motosPara.motosPos[mt##_IDX]; /* <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> */\
|
|||
|
|
printf("set new pos to %d\r\n", temp);\
|
|||
|
|
printf("old pos=%d, new pos=%d\r\n", g_motosPara.motosPos[mt##_IDX], temp);\
|
|||
|
|
SetMotoCounter(mt##_IDX, temp); /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */\
|
|||
|
|
ReadAndFreshMotosPos();\
|
|||
|
|
}\
|
|||
|
|
}while(0);
|
|||
|
|
|
|||
|
|
#define SET_EX_MOTO_ZERO(mt) do\
|
|||
|
|
{\
|
|||
|
|
if (g_workCtrl.zeroEnFlag == DATA_VALID && (g_workCtrl.posEnFlag & mt##_MOD) == (mt##_MOD))\
|
|||
|
|
{\
|
|||
|
|
printf("\r\nset %s zero = %d \r\n", #mt, list[EX##mt##_IDX]);\
|
|||
|
|
printf("before set, zero is %d\r\n", g_workCtrl.zeroPosList[EX##mt##_IDX]);\
|
|||
|
|
temp = list[EX##mt##_IDX] - g_workCtrl.zeroPosList[EX##mt##_IDX]; /* <20><>ǰ<EFBFBD><C7B0>λ<EFBFBD><CEBB>ԭ<EFBFBD><D4AD>λ<EFBFBD>IJ<EFBFBD> */\
|
|||
|
|
temp += g_motosPara.motosPos[mt##_IDX]; /* <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> */\
|
|||
|
|
printf("set new pos to %d\r\n", temp);\
|
|||
|
|
printf("old pos=%d, new pos=%d\r\n", g_motosPara.motosPos[mt##_IDX], temp);\
|
|||
|
|
SetMotoCounter(mt##_IDX, temp); /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */\
|
|||
|
|
ReadAndFreshMotosPos();\
|
|||
|
|
}\
|
|||
|
|
}while(0);
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
#if (AUTO_ELEC_CLIP == 1)
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
u32 index;
|
|||
|
|
u8 level;
|
|||
|
|
}__attribute__ ((packed)) DataClip;
|
|||
|
|
|
|||
|
|
extern DataClip g_dataClipLvBuf[256];
|
|||
|
|
#endif
|
|||
|
|
#endif
|