172 lines
4.2 KiB
C
172 lines
4.2 KiB
C
|
|
|
|||
|
|
#ifndef __COLORCONTROL_H__
|
|||
|
|
#define __COLORCONTROL_H__
|
|||
|
|
|
|||
|
|
#include "controlbus.h"
|
|||
|
|
|
|||
|
|
#if (CONTROL_BUS == COMM_CAN)
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
u8 nodeId;
|
|||
|
|
|
|||
|
|
CtrlBusPacket ctrlCmd; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CtrlBusPacket exbSta; // <20><>Χ<EFBFBD>巵<EFBFBD>ص<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
|||
|
|
BoardRegVal regVal; // <20><>Χ<EFBFBD><CEA7><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ֵ
|
|||
|
|
CtrlBusPacket rdReg; // <20><>ȡ<EFBFBD><C8A1>Χ<EFBFBD><CEA7><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ֵ
|
|||
|
|
|
|||
|
|
int cmdFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
int staFlag; // <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>־
|
|||
|
|
|
|||
|
|
int refSta; // ˢ<><CBA2>״̬<D7B4><CCAC>־
|
|||
|
|
|
|||
|
|
int verFlag; // <20><><EFBFBD>³<EFBFBD><C2B3><EFBFBD><EFBFBD>汾<EFBFBD><E6B1BE>־
|
|||
|
|
int refVer; // ˢ<>³<EFBFBD><C2B3><EFBFBD><EFBFBD>汾<EFBFBD><E6B1BE>־
|
|||
|
|
|
|||
|
|
int transFlag; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>־ <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
u8 exbupdateFlag; // <20><>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
|
|||
|
|
u8 refNvPara; // ˢ<>·<EFBFBD><C2B7><EFBFBD>ʧ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
|||
|
|
u8 nvParaFlag; // <20><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
|
|||
|
|
}ColorControl;
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
typedef union
|
|||
|
|
{
|
|||
|
|
u8 buff[CAN_DATA_LEN];
|
|||
|
|
|
|||
|
|
//---------------
|
|||
|
|
|
|||
|
|
struct
|
|||
|
|
{
|
|||
|
|
u16 cmd;
|
|||
|
|
u8 subcmd;
|
|||
|
|
u8 para[5];
|
|||
|
|
} __attribute__ ((packed)) colorCtrl; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
struct
|
|||
|
|
{
|
|||
|
|
u16 cmd;
|
|||
|
|
u8 needleNums; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u8 rev[5]; // Ԥ<><D4A4>
|
|||
|
|
} __attribute__ ((packed)) colorPara; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
struct
|
|||
|
|
{
|
|||
|
|
u16 cmd;
|
|||
|
|
u8 parablockID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
|
u8 paraID; // <20><><EFBFBD><EFBFBD>ID
|
|||
|
|
s32 paraval; // <20><><EFBFBD><EFBFBD>ֵ
|
|||
|
|
} __attribute__ ((packed)) colorNvPara; // <20><><EFBFBD><EFBFBD>ʧ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
|||
|
|
|
|||
|
|
struct
|
|||
|
|
{
|
|||
|
|
u16 staBits; // ״̬λ
|
|||
|
|
u16 potValue; // <20><>λ<EFBFBD><CEBB>ֵ
|
|||
|
|
s8 curNeedle; // <20><>ǰ<EFBFBD><C7B0>λ
|
|||
|
|
s8 needleNums; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u8 rev[2];
|
|||
|
|
} __attribute__ ((packed)) colorSta; // ״̬
|
|||
|
|
|
|||
|
|
//-----------------------------------------------
|
|||
|
|
|
|||
|
|
struct
|
|||
|
|
{
|
|||
|
|
u16 cmd;
|
|||
|
|
u8 subcmd; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u8 para[5];
|
|||
|
|
} __attribute__ ((packed)) chenilleCtrl; // ë<><C3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
struct
|
|||
|
|
{
|
|||
|
|
u16 staBits; // ״̬λ
|
|||
|
|
u16 potValue; // <20><>λ<EFBFBD><CEBB>ֵ(<28>ɽ<EFBFBD><C9BD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>)
|
|||
|
|
s8 curNeedle; // <20><>ǰ<EFBFBD><C7B0>λ
|
|||
|
|
s8 needleNums; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
s8 elasticWirePos; // <20>ɽ<EFBFBD><C9BD>ߵ<EFBFBD><DFB5><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
|
u8 rev;
|
|||
|
|
} __attribute__ ((packed)) chenilleSta; // ë<><C3AB><EFBFBD><EFBFBD>״̬
|
|||
|
|
|
|||
|
|
struct
|
|||
|
|
{
|
|||
|
|
u16 cmd;
|
|||
|
|
u8 para[6]; // Ԥ<><D4A4>
|
|||
|
|
} __attribute__ ((packed)) chenillePara; // ë<><C3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
}ColorCommand;
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
// <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
#define CTRL_CMD_EMB_HEAD_CTRL 0x1000 // ƽ<><C6BD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CTRL_CMD_EMB_HEAD_PARA 0x1001 // ƽ<><C6BD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CTRL_CMD_HEAD_NVPARA 0x1002 // ƽ<><C6BD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>ʧ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define CTRL_CMD_CHENILLE_HEAD_CTRL 0x1010 // ë<><C3AB><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CTRL_CMD_CHENILLE_HEAD_PARA 0x1011 // ë<><C3AB><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CTRL_CMD_CHENILLE_NVPARA 0x1012 // ë<><C3AB><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>ʧ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define CTRL_CMD_COIL_HEAD_CTRL 0x1020 // <20><><EFBFBD>ƻ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CTRL_CMD_COIL_HEAD_PARA 0x1021 // <20><><EFBFBD>ƻ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CTRL_CMD_COIL_NVPARA 0x1022 // <20><><EFBFBD>ƻ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>ʧ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#define CTRL_CMD_COLOR_CTRL 0x1100 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CTRL_CMD_COLOR_PARA 0x1101 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CTRL_CMD_COLOR_NVPARA 0x1102 // <20><><EFBFBD><EFBFBD>ʧ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CTRL_SUBCMD_SWITCH_NEEDLE 0x01 // <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
|
|||
|
|
#define CTRL_SUBCMD_CHG_MOTO_CTRL 0x02 // <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
// ë<><C3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CTRL_CMD_CHENILLE_CTRL 0x1110 //ë<><C3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CTRL_SUBCMD_ELASTIC_CTRL 0x01 // <20>ɽ<EFBFBD><C9BD>߿<EFBFBD><DFBF><EFBFBD>
|
|||
|
|
#define CTRL_SUBCMD_CHENILLE_COLOR 0x02 // ë<><C3AB><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20>ɽ<EFBFBD><C9BD>߿<EFBFBD><DFBF><EFBFBD>para[0]<5D><><EFBFBD><EFBFBD>
|
|||
|
|
#define ELASTICWIRE_COLORCHANGE_POS 1 // <20>ɽ<EFBFBD><C9BD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>ɫλ
|
|||
|
|
#define ELASTICWIRE_TRIMMING_POS 2 // <20>ɽ<EFBFBD><C9BD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|||
|
|
#define ELASTICWIRE_CHAIN_POS 3 // <20>ɽ<EFBFBD><C9BD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>ʽλ
|
|||
|
|
#define ELASTICWIRE_CHENILLE_POS 4 // <20>ɽ<EFBFBD><C9BD>ߵ<EFBFBD><DFB5><EFBFBD>ë<EFBFBD><C3AB>λ
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
void InitColorControl(ColorControl * pCtrl);
|
|||
|
|
|
|||
|
|
void SendColorCommand(ColorControl * pCtrl, ColorCommand * pCmd);
|
|||
|
|
|
|||
|
|
void RequestColorStatus(ColorControl * pCtrl);
|
|||
|
|
|
|||
|
|
void RequestColorVersion(ColorControl * pCtrl);
|
|||
|
|
|
|||
|
|
void RequestColorNvPara(ColorControl * pCtrl);
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
#endif
|