optical/NxFuncs/controlbus/extiocontrol.h

107 lines
2.6 KiB
C
Raw Permalink Normal View History

2025-09-04 01:45:08 +00:00
#ifndef __EXTIOCONTROL_H__
#define __EXTIOCONTROL_H__
#include "controlbus.h"
#if (CONTROL_BUS == COMM_CAN)
/*
IO<EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD>
*/
//-------------------------------------------------------------------------------
typedef struct
{
u8 nodeId; // <20>ڵ<EFBFBD>ID
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>ֵ
u8 cmdFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ N5--<2D><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u8 staFlag; // <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>־ N5--<2D><><EFBFBD><EFBFBD>BN_CMD_EXSTA
u8 refSta; // ˢ<><CBA2>״̬<D7B4><CCAC>־ N5--<2D><><EFBFBD><EFBFBD>BN_CMD_EXSTA
u8 refVer;
u8 verFlag;
u8 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>־
}ExtIOControl;
//-------------------------------------------------------------------------------
typedef union
{
u8 buff[CAN_DATA_LEN];
struct
{
u16 cmd;
u8 subcmd;
u16 outctrl;
u8 para[3];
} __attribute__ ((packed)) extIOCtrl; // IO<49><4F>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct
{
u16 inputSta;
u8 rev[6];
} __attribute__ ((packed)) extIOSta; // ״̬<D7B4><CCAC><EFBFBD><EFBFBD>
}ExtIOCommand;
//-------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB6A8>
/*
#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>
*/
#define CTRL_CMD_EXTIO_CTRL 0x1200 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------
// <20>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB6A8>
#define CTRL_SUBCMD_OUT_ON 0x01
#define CTRL_SUBCMD_OUT_OFF 0x02
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
void InitExtIOControl(ExtIOControl * pCtrl);
void SendExtIOCommand(ExtIOControl * pCtrl, ExtIOCommand * pCmd);
void RequestExtIOStatus(ExtIOControl * pCtrl);
void RequestExtIOVersion(ExtIOControl * pCtrl);
//-------------------------------------------------------------------------------
#endif
#endif