974 lines
41 KiB
C
974 lines
41 KiB
C
#include "OutPutGpioTask.h"
|
|
#include "DpcCommTask.h"
|
|
#include "WatchDogTask.h"
|
|
#include "ToolDataTypeSwitch.h"
|
|
#include "FileSysTask.h"
|
|
#include "UpcCommTask.h"
|
|
#include "EepromTaskConf.h"
|
|
#include "McuBspEeprom.h"
|
|
|
|
#include "McuBspAdc.h"
|
|
|
|
#include "driverlib/gpio.h"
|
|
#include "driverlib/pin_map.h"
|
|
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
|
|
#define CO2_CTRL_GPIO GPIO_PORTN_BASE
|
|
#define CO2_CTRL_PIN GPIO_PIN_4
|
|
#define CO2_CTRL_CLK SYSCTL_PERIPH_GPION
|
|
#define CO2_I_ADC MCU_BSP_ADC16
|
|
#define CO2_INPUT_GPIO
|
|
#define CO2_INPUT_PIN
|
|
#define CO2_INPUT_CLK
|
|
|
|
#define CTD_CTRL_GPIO GPIO_PORTN_BASE
|
|
#define CTD_CTRL_PIN GPIO_PIN_3
|
|
#define CTD_CTRL_CLK SYSCTL_PERIPH_GPION
|
|
#define CTD_I_ADC MCU_BSP_ADC17
|
|
#define CTD_INPUT_GPIO
|
|
#define CTD_INPUT_PIN
|
|
#define CTD_INPUT_CLK
|
|
|
|
#define UV1_CTRL_GPIO GPIO_PORTN_BASE
|
|
#define UV1_CTRL_PIN GPIO_PIN_2
|
|
#define UV1_CTRL_CLK SYSCTL_PERIPH_GPION
|
|
#define UV1_I_ADC MCU_BSP_ADC18
|
|
#define UV1_INPUT_GPIO
|
|
#define UV1_INPUT_PIN
|
|
#define UV1_INPUT_CLK
|
|
|
|
|
|
#define UV2_CTRL_GPIO GPIO_PORTN_BASE
|
|
#define UV2_CTRL_PIN GPIO_PIN_1
|
|
#define UV2_CTRL_CLK SYSCTL_PERIPH_GPION
|
|
#define UV2_I_ADC MCU_BSP_ADC19
|
|
#define UV2_INPUT_GPIO
|
|
#define UV2_INPUT_PIN
|
|
#define UV2_INPUT_CLK
|
|
|
|
#define UV3_CTRL_GPIO GPIO_PORTN_BASE
|
|
#define UV3_CTRL_PIN GPIO_PIN_0
|
|
#define UV3_CTRL_CLK SYSCTL_PERIPH_GPION
|
|
#define UV3_I_ADC MCU_BSP_ADC11
|
|
#define UV3_INPUT_GPIO
|
|
#define UV3_INPUT_PIN
|
|
#define UV3_INPUT_CLK
|
|
|
|
#define UV4_CTRL_GPIO GPIO_PORTP_BASE
|
|
#define UV4_CTRL_PIN GPIO_PIN_5
|
|
#define UV4_CTRL_CLK SYSCTL_PERIPH_GPIOP
|
|
#define UV4_I_ADC MCU_BSP_ADC10
|
|
#define UV4_INPUT_GPIO
|
|
#define UV4_INPUT_PIN
|
|
#define UV4_INPUT_CLK
|
|
|
|
#define MANYPARA_CTRL_GPIO GPIO_PORTL_BASE
|
|
#define MANYPARA_CTRL_PIN GPIO_PIN_4
|
|
#define MANYPARA_CTRL_CLK SYSCTL_PERIPH_GPIOL
|
|
#define MANYPARA_I_ADC MCU_BSP_ADC9
|
|
#define MANYPARA_INPUT_GPIO GPIO_PORTM_BASE
|
|
#define MANYPARA_INPUT_PIN GPIO_PIN_7
|
|
#define MANYPARA_INPUT_CLK SYSCTL_PERIPH_GPIOM
|
|
|
|
#define ADCP_CTRL_GPIO GPIO_PORTL_BASE
|
|
#define ADCP_CTRL_PIN GPIO_PIN_3
|
|
#define ADCP_CTRL_CLK SYSCTL_PERIPH_GPIOL
|
|
#define ADCP_I_ADC MCU_BSP_ADC8
|
|
#define ADCP_INPUT_GPIO GPIO_PORTM_BASE
|
|
#define ADCP_INPUT_PIN GPIO_PIN_6
|
|
#define ADCP_INPUT_CLK SYSCTL_PERIPH_GPIOM
|
|
|
|
#define RESERVED_12V_CTRL_GPIO GPIO_PORTL_BASE
|
|
#define RESERVED_12V_CTRL_PIN GPIO_PIN_2
|
|
#define RESERVED_12V_CTRL_CLK SYSCTL_PERIPH_GPIOL
|
|
#define RESERVED_12V_I_ADC MCU_BSP_ADC7
|
|
#define RESERVED_12V_INPUT_GPIO GPIO_PORTM_BASE
|
|
#define RESERVED_12V_INPUT_PIN GPIO_PIN_5
|
|
#define RESERVED_12V_INPUT_CLK SYSCTL_PERIPH_GPIOM
|
|
|
|
#define RESERVED_24V_CTRL_GPIO GPIO_PORTL_BASE
|
|
#define RESERVED_24V_CTRL_PIN GPIO_PIN_1
|
|
#define RESERVED_24V_CTRL_CLK SYSCTL_PERIPH_GPIOL
|
|
#define RESERVED_24V_I_ADC MCU_BSP_ADC6
|
|
#define RESERVED_24V_INPUT_GPIO GPIO_PORTM_BASE
|
|
#define RESERVED_24V_INPUT_PIN GPIO_PIN_4
|
|
#define RESERVED_24V_INPUT_CLK SYSCTL_PERIPH_GPIOM
|
|
|
|
#define RESERVED_48V_CTRL_GPIO GPIO_PORTM_BASE
|
|
#define RESERVED_48V_CTRL_PIN GPIO_PIN_0
|
|
#define RESERVED_48V_CTRL_CLK SYSCTL_PERIPH_GPIOM
|
|
#define RESERVED_48V_I_ADC MCU_BSP_ADC5
|
|
#define RESERVED_48V_INPUT_GPIO GPIO_PORTB_BASE
|
|
#define RESERVED_48V_INPUT_PIN GPIO_PIN_2
|
|
#define RESERVED_48V_INPUT_CLK SYSCTL_PERIPH_GPIOB
|
|
|
|
#define LAMP_CTRL_GPIO GPIO_PORTM_BASE
|
|
#define LAMP_CTRL_PIN GPIO_PIN_1
|
|
#define LAMP_CTRL_CLK SYSCTL_PERIPH_GPIOM
|
|
#define LAMP_I_ADC MCU_BSP_ADC4
|
|
#define LAMP_INPUT_GPIO GPIO_PORTB_BASE
|
|
#define LAMP_INPUT_PIN GPIO_PIN_3
|
|
#define LAMP_INPUT_CLK SYSCTL_PERIPH_GPIOB
|
|
|
|
/* 48V */
|
|
static uint32_t gReserved48v_Vu32 = 0;
|
|
static float gReserved48v_Vf = 0.0f;
|
|
static uint32_t gReserved48v_Iu32 = 0;
|
|
static float gReserved48v_If = 0.0f;
|
|
static uint8_t gReserved48vStatus = 0;
|
|
|
|
/* 24V */
|
|
static uint32_t gReserved24v_Vu32 = 0;
|
|
static float gReserved24v_Vf = 0.0f;
|
|
static uint32_t gReserved24v_Iu32 = 0;
|
|
static float gReserved24v_If = 0.0f;
|
|
static uint8_t gReserved24vStatus = 0;
|
|
|
|
/* 12V */
|
|
static uint32_t gReserved12v_Vu32 = 0;
|
|
static float gReserved12v_Vf = 0.0f;
|
|
static uint32_t gReserved12v_Iu32 = 0;
|
|
static float gReserved12v_If = 0.0f;
|
|
static uint8_t gReserved12vStatus = 0;
|
|
|
|
/* 多参数 */
|
|
static uint32_t gManyPara_Vu32 = 0;
|
|
static float gManyPara_Vf = 0.0f;
|
|
static uint32_t gManyPara_Iu32 = 0;
|
|
static float gManyPara_If = 0.0f;
|
|
static uint8_t gManyParaStatus = 0;
|
|
|
|
/* CTD */
|
|
static uint32_t gCTD_Vu32 = 0;
|
|
static float gCTD_Vf = 0.0f;
|
|
static uint32_t gCTD_Iu32 = 0;
|
|
static float gCTD_If = 0.0f;
|
|
static uint8_t gCTDStatus = 0;
|
|
|
|
/* ADCP */
|
|
static uint32_t gADCP_Vu32 = 0;
|
|
static float gADCP_Vf = 0.0f;
|
|
static uint32_t gADCP_Iu32 = 0;
|
|
static float gADCP_If = 0.0f;
|
|
static uint8_t gADCPStatus = 0;
|
|
|
|
/* UV1 */
|
|
static uint32_t gUV1_Vu32 = 0;
|
|
static float gUV1_Vf = 0.0f;
|
|
static uint32_t gUV1_Iu32 = 0;
|
|
static float gUV1_If = 0.0f;
|
|
static uint8_t gUV1Status = 0;
|
|
|
|
/* UV2 */
|
|
static uint32_t gUV2_Vu32 = 0;
|
|
static float gUV2_Vf = 0.0f;
|
|
static uint32_t gUV2_Iu32 = 0;
|
|
static float gUV2_If = 0.0f;
|
|
static uint8_t gUV2Status = 0;
|
|
|
|
/* UV3 */
|
|
static uint32_t gUV3_Vu32 = 0;
|
|
static float gUV3_Vf = 0.0f;
|
|
static uint32_t gUV3_Iu32 = 0;
|
|
static float gUV3_If = 0.0f;
|
|
static uint8_t gUV3Status = 0;
|
|
|
|
/* UV4 */
|
|
static uint32_t gUV4_Vu32 = 0;
|
|
static float gUV4_Vf = 0.0f;
|
|
static uint32_t gUV4_Iu32 = 0;
|
|
static float gUV4_If = 0.0f;
|
|
static uint8_t gUV4Status = 0;
|
|
|
|
/* CO2 */
|
|
static uint32_t gCO2_Vu32 = 0;
|
|
static float gCO2_Vf = 0.0f;
|
|
static uint32_t gCO2_Iu32 = 0;
|
|
static float gCO2_If = 0.0f;
|
|
static uint8_t gCO2Status = 0;
|
|
|
|
/* 影像处理舱 */
|
|
static uint32_t gVedio_Vu32 = 0;
|
|
static float gVedio_Vf = 0.0f;
|
|
static uint32_t gVedio_Iu32 = 0;
|
|
static float gVedio_If = 0.0f;
|
|
static uint8_t gVedioStatus = 0;
|
|
|
|
/* LAMP */
|
|
static uint32_t gLamp_Vu32 = 0;
|
|
static float gLamp_Vf = 0.0f;
|
|
static uint32_t gLamp_Iu32 = 0;
|
|
static float gLamp_If = 0.0f;
|
|
static uint8_t gLampStatus = 0;
|
|
|
|
/* 初始化标识符 */
|
|
static uint8_t gInitFlag = 0;
|
|
|
|
static OUTOUT_DPC_STATUS gTaskOutputGpioOutputDpcSta = {0};
|
|
|
|
static int gTaskOutputGpioWatchDogId = -1; // 心跳包看门狗事件ID
|
|
static int gTaskOutputGpioPickEnable = -1; // 端口输出状态采集使能
|
|
static unsigned char gTaskOutputGpioSendBuf[118] = {0}; // 端口输出发送的状态缓存,118因为该消息体大小为118
|
|
|
|
static unsigned short gTaskOutPutGpioSendSerial = 0;
|
|
|
|
static char gTaskOutPutGpioFileDataBuf[1024] = {0};
|
|
|
|
static int TaskOutPutGpioGet(uint8_t OutPutGpioId); // 获取当前设置的输出状态
|
|
static int TaskOutPutGpioStatusGet(uint8_t OutPutGpioId);
|
|
|
|
/* 初始化 */
|
|
void TaskOutputGpioInit(void)
|
|
{
|
|
uint32_t OutPutSta ;
|
|
/************************* ADC初始化 *********************************/
|
|
McuBspAdcInit();
|
|
/************************ 48V的初始化 ********************************/
|
|
OutPutSta = 0;
|
|
/* 初始化控制 */
|
|
SysCtlPeripheralEnable(RESERVED_48V_CTRL_CLK);
|
|
GPIODirModeSet(RESERVED_48V_CTRL_GPIO, RESERVED_48V_CTRL_PIN, GPIO_DIR_MODE_OUT);
|
|
GPIOPadConfigSet(RESERVED_48V_CTRL_GPIO, RESERVED_48V_CTRL_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
|
|
McuBspEepromReadValue(RESERVED_48V_CTRL_STA_EEPROM_ADDR, &OutPutSta, sizeof(OutPutSta));
|
|
if (OutPutSta != 1) {
|
|
TaskOutPutGpioSet(RESERVED_48V_CHANNEL_ID, OUTPUT_GPIO_LOW);
|
|
} else {
|
|
TaskOutPutGpioSet(RESERVED_48V_CHANNEL_ID, OUTPUT_GPIO_HIGH);
|
|
}
|
|
/* 初始化输入 */
|
|
SysCtlPeripheralEnable(RESERVED_48V_INPUT_CLK);
|
|
GPIODirModeSet(RESERVED_48V_INPUT_GPIO, RESERVED_48V_INPUT_PIN, GPIO_DIR_MODE_IN);
|
|
/************************ 24V的初始化 ********************************/
|
|
OutPutSta = 0;
|
|
/* 初始化控制 */
|
|
SysCtlPeripheralEnable(RESERVED_24V_CTRL_CLK);
|
|
GPIODirModeSet(RESERVED_24V_CTRL_GPIO, RESERVED_24V_CTRL_PIN, GPIO_DIR_MODE_OUT);
|
|
GPIOPadConfigSet(RESERVED_24V_CTRL_GPIO, RESERVED_24V_CTRL_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
|
|
McuBspEepromReadValue(RESERVED_24V_CTRL_STA_EEPROM_ADDR, &OutPutSta, sizeof(OutPutSta));
|
|
if (OutPutSta != 1) {
|
|
TaskOutPutGpioSet(RESERVED_24V_CHANNEL_ID, OUTPUT_GPIO_LOW);
|
|
} else {
|
|
TaskOutPutGpioSet(RESERVED_24V_CHANNEL_ID, OUTPUT_GPIO_HIGH);
|
|
}
|
|
/* 初始化输入 */
|
|
SysCtlPeripheralEnable(RESERVED_24V_INPUT_CLK);
|
|
GPIODirModeSet(RESERVED_24V_INPUT_GPIO, RESERVED_24V_INPUT_PIN, GPIO_DIR_MODE_IN);
|
|
/************************ 12V的初始化 ********************************/
|
|
OutPutSta = 0;
|
|
/* 初始化控制 */
|
|
SysCtlPeripheralEnable(RESERVED_12V_CTRL_CLK);
|
|
GPIODirModeSet(RESERVED_12V_CTRL_GPIO, RESERVED_12V_CTRL_PIN, GPIO_DIR_MODE_OUT);
|
|
GPIOPadConfigSet(RESERVED_12V_CTRL_GPIO, RESERVED_12V_CTRL_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
|
|
McuBspEepromReadValue(RESERVED_12V_CTRL_STA_EEPROM_ADDR, &OutPutSta, sizeof(OutPutSta));
|
|
if (OutPutSta != 1) {
|
|
TaskOutPutGpioSet(RESERVED_12V_CHANNEL_ID, OUTPUT_GPIO_LOW);
|
|
} else {
|
|
TaskOutPutGpioSet(RESERVED_12V_CHANNEL_ID, OUTPUT_GPIO_HIGH);
|
|
}
|
|
/* 初始化输入 */
|
|
SysCtlPeripheralEnable(RESERVED_12V_INPUT_CLK);
|
|
GPIODirModeSet(RESERVED_12V_INPUT_GPIO, RESERVED_12V_INPUT_PIN, GPIO_DIR_MODE_IN);
|
|
/************************ 多参数的初始化 *****************************/
|
|
OutPutSta = 0;
|
|
/* 初始化控制 */
|
|
SysCtlPeripheralEnable(MANYPARA_CTRL_CLK);
|
|
GPIODirModeSet(MANYPARA_CTRL_GPIO, MANYPARA_CTRL_PIN, GPIO_DIR_MODE_OUT);
|
|
GPIOPadConfigSet(MANYPARA_CTRL_GPIO, MANYPARA_CTRL_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
|
|
McuBspEepromReadValue(MANYPARA_CTRL_STA_EEPROM_ADDR, &OutPutSta, sizeof(OutPutSta));
|
|
if (OutPutSta != 1) {
|
|
TaskOutPutGpioSet(MANYPARA_CHANNEL_ID, OUTPUT_GPIO_LOW);
|
|
} else {
|
|
TaskOutPutGpioSet(MANYPARA_CHANNEL_ID, OUTPUT_GPIO_HIGH);
|
|
}
|
|
/* 初始化输入 */
|
|
SysCtlPeripheralEnable(MANYPARA_INPUT_CLK);
|
|
GPIODirModeSet(MANYPARA_INPUT_GPIO, MANYPARA_INPUT_PIN, GPIO_DIR_MODE_IN);
|
|
/************************ CTD的初始化 ***********************************/
|
|
OutPutSta = 0;
|
|
/* 初始化控制 */
|
|
SysCtlPeripheralEnable(CTD_CTRL_CLK);
|
|
GPIODirModeSet(CTD_CTRL_GPIO, CTD_CTRL_PIN, GPIO_DIR_MODE_OUT);
|
|
GPIOPadConfigSet(CTD_CTRL_GPIO, CTD_CTRL_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
|
|
McuBspEepromReadValue(CTD_CTRL_STA_EEPROM_ADDR, &OutPutSta, sizeof(OutPutSta));
|
|
if (OutPutSta != 1) {
|
|
TaskOutPutGpioSet(CTD_CHANNEL_ID, OUTPUT_GPIO_LOW);
|
|
} else {
|
|
TaskOutPutGpioSet(CTD_CHANNEL_ID, OUTPUT_GPIO_HIGH);
|
|
}
|
|
/* 初始化输入 */
|
|
// 在从板中
|
|
/************************* ADCP的初始化 ******************************/
|
|
OutPutSta = 0;
|
|
/* 初始化控制 */
|
|
SysCtlPeripheralEnable(ADCP_CTRL_CLK);
|
|
GPIODirModeSet(ADCP_CTRL_GPIO, ADCP_CTRL_PIN, GPIO_DIR_MODE_OUT);
|
|
GPIOPadConfigSet(ADCP_CTRL_GPIO, ADCP_CTRL_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
|
|
McuBspEepromReadValue(ADCP_CTRL_STA_EEPROM_ADDR, &OutPutSta, sizeof(OutPutSta));
|
|
if (OutPutSta != 1) {
|
|
TaskOutPutGpioSet(ADCP_CHANNEL_ID, OUTPUT_GPIO_LOW);
|
|
} else {
|
|
TaskOutPutGpioSet(ADCP_CHANNEL_ID, OUTPUT_GPIO_HIGH);
|
|
}
|
|
/* 初始化输入 */
|
|
SysCtlPeripheralEnable(ADCP_INPUT_CLK);
|
|
GPIODirModeSet(ADCP_INPUT_GPIO, ADCP_INPUT_PIN, GPIO_DIR_MODE_IN);
|
|
/************************* UV1的初始化 *******************************/
|
|
OutPutSta = 0;
|
|
/* 初始化控制 */
|
|
SysCtlPeripheralEnable(UV1_CTRL_CLK);
|
|
GPIODirModeSet(UV1_CTRL_GPIO, UV1_CTRL_PIN, GPIO_DIR_MODE_OUT);
|
|
GPIOPadConfigSet(UV1_CTRL_GPIO, UV1_CTRL_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
|
|
McuBspEepromReadValue(UV1_CTRL_STA_EEPROM_ADDR, &OutPutSta, sizeof(OutPutSta));
|
|
if (OutPutSta != 1) {
|
|
TaskOutPutGpioSet(UV1_CHANNEL_ID, OUTPUT_GPIO_LOW);
|
|
} else {
|
|
TaskOutPutGpioSet(UV1_CHANNEL_ID, OUTPUT_GPIO_HIGH);
|
|
}
|
|
/* 初始化输入 */
|
|
// 在从板中
|
|
/************************* UV2的初始化 *******************************/
|
|
OutPutSta = 0;
|
|
/* 初始化控制 */
|
|
SysCtlPeripheralEnable(UV2_CTRL_CLK);
|
|
GPIODirModeSet(UV2_CTRL_GPIO, UV2_CTRL_PIN, GPIO_DIR_MODE_OUT);
|
|
GPIOPadConfigSet(UV2_CTRL_GPIO, UV2_CTRL_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
|
|
McuBspEepromReadValue(UV2_CTRL_STA_EEPROM_ADDR, &OutPutSta, sizeof(OutPutSta));
|
|
if (OutPutSta != 1) {
|
|
TaskOutPutGpioSet(UV2_CHANNEL_ID, OUTPUT_GPIO_LOW);
|
|
} else {
|
|
TaskOutPutGpioSet(UV2_CHANNEL_ID, OUTPUT_GPIO_HIGH);
|
|
}
|
|
/* 初始化输入 */
|
|
// 在从板中
|
|
/************************* UV3的初始化 *******************************/
|
|
OutPutSta = 0;
|
|
/* 初始化控制 */
|
|
SysCtlPeripheralEnable(UV3_CTRL_CLK);
|
|
GPIODirModeSet(UV3_CTRL_GPIO, UV3_CTRL_PIN, GPIO_DIR_MODE_OUT);
|
|
GPIOPadConfigSet(UV3_CTRL_GPIO, UV3_CTRL_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
|
|
McuBspEepromReadValue(UV3_CTRL_STA_EEPROM_ADDR, &OutPutSta, sizeof(OutPutSta));
|
|
if (OutPutSta != 1) {
|
|
TaskOutPutGpioSet(UV3_CHANNEL_ID, OUTPUT_GPIO_LOW);
|
|
} else {
|
|
TaskOutPutGpioSet(UV3_CHANNEL_ID, OUTPUT_GPIO_HIGH);
|
|
}
|
|
/* 初始化输入 */
|
|
// 在从板中
|
|
/************************* UV4的初始化 *******************************/
|
|
OutPutSta = 0;
|
|
/* 初始化控制 */
|
|
SysCtlPeripheralEnable(UV4_CTRL_CLK);
|
|
GPIODirModeSet(UV4_CTRL_GPIO, UV4_CTRL_PIN, GPIO_DIR_MODE_OUT);
|
|
GPIOPadConfigSet(UV4_CTRL_GPIO, UV4_CTRL_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
|
|
McuBspEepromReadValue(UV4_CTRL_STA_EEPROM_ADDR, &OutPutSta, sizeof(OutPutSta));
|
|
if (OutPutSta != 1) {
|
|
TaskOutPutGpioSet(UV4_CHANNEL_ID, OUTPUT_GPIO_LOW);
|
|
} else {
|
|
TaskOutPutGpioSet(UV4_CHANNEL_ID, OUTPUT_GPIO_HIGH);
|
|
}
|
|
/* 初始化输入 */
|
|
// 在从板中
|
|
/************************* CO2的初始化 *******************************/
|
|
OutPutSta = 0;
|
|
/* 初始化控制 */
|
|
SysCtlPeripheralEnable(CO2_CTRL_CLK);
|
|
GPIODirModeSet(CO2_CTRL_GPIO, CO2_CTRL_PIN, GPIO_DIR_MODE_OUT);
|
|
GPIOPadConfigSet(CO2_CTRL_GPIO, CO2_CTRL_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
|
|
McuBspEepromReadValue(CO2_CTRL_STA_EEPROM_ADDR, &OutPutSta, sizeof(OutPutSta));
|
|
if (OutPutSta != 1) {
|
|
TaskOutPutGpioSet(CO2_CHANNEL_ID, OUTPUT_GPIO_LOW);
|
|
} else {
|
|
TaskOutPutGpioSet(CO2_CHANNEL_ID, OUTPUT_GPIO_HIGH);
|
|
}
|
|
/* 初始化输入 */
|
|
// 在从板中
|
|
/************************* 照明灯的初始化 *******************************/
|
|
OutPutSta = 0;
|
|
/* 初始化控制 */
|
|
SysCtlPeripheralEnable(LAMP_CTRL_CLK);
|
|
GPIODirModeSet(LAMP_CTRL_GPIO, LAMP_CTRL_PIN, GPIO_DIR_MODE_OUT);
|
|
GPIOPadConfigSet(LAMP_CTRL_GPIO, LAMP_CTRL_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
|
|
McuBspEepromReadValue(LAMP_CTRL_STA_EEPROM_ADDR, &OutPutSta, sizeof(OutPutSta));
|
|
if (OutPutSta != 1) {
|
|
TaskOutPutGpioSet(LAMP_CHANNEL_ID, OUTPUT_GPIO_LOW);
|
|
} else {
|
|
TaskOutPutGpioSet(LAMP_CHANNEL_ID, OUTPUT_GPIO_HIGH);
|
|
}
|
|
/* 初始化输入 */
|
|
// 在从板中
|
|
/************************** 影像处理舱 *******************************/
|
|
/* 初始化控制 */
|
|
// 无控制量信号,常开
|
|
/* 初始化输入 */
|
|
// 无输入信号
|
|
/*********************** 创建任务的看门狗事件 ***********************/
|
|
gTaskOutputGpioWatchDogId = TaskWatchdogRegEvent("TaskOutPutGpio");
|
|
gInitFlag = 1;
|
|
}
|
|
|
|
void TaskOutPutGpio(void *arg)
|
|
{
|
|
unsigned int RealWbyte;
|
|
int i = 0;
|
|
/* 将时钟同步任务开启写入日志 */
|
|
TaskFileLogWrite("TaskOutPutGpio: Join in!!\n", strlen("TaskOutPutGpio: Join in!!\n"), &RealWbyte);
|
|
while (1) {
|
|
OSTimeDly(100);
|
|
TaskWatchdogFreed(gTaskOutputGpioWatchDogId);
|
|
if (gTaskOutputGpioPickEnable != 1) {
|
|
continue;
|
|
}
|
|
/* 使能获取从板的数据 */
|
|
i = 0;
|
|
while (0 > TaskDpcCommSetAskEnable(STATUS_OUTPUT_ASK_ID)){
|
|
i++;
|
|
OSTimeDly(100);
|
|
TaskWatchdogFreed(gTaskOutputGpioWatchDogId);
|
|
if (i > 1000) {
|
|
break;
|
|
}
|
|
}
|
|
/* 等待从板新数据生成完毕 */
|
|
i = 0;
|
|
while (0 == TaskDpcCommGetOutputDataStatus()) {
|
|
i++;
|
|
OSTimeDly(100);
|
|
TaskWatchdogFreed(gTaskOutputGpioWatchDogId);
|
|
if (i > 1000) {
|
|
break;
|
|
}
|
|
}
|
|
if (0 > TaskDpcCommGetOutputData(&gTaskOutputGpioOutputDpcSta)) {
|
|
memset(&gTaskOutputGpioOutputDpcSta, 0, sizeof(gTaskOutputGpioOutputDpcSta));
|
|
}
|
|
/* 48V预留端口 */
|
|
*(&gReserved48v_Vu32) = 0; // 去除警告
|
|
*(&gReserved48v_Vf) = 0.0f; // 去除警告
|
|
McuBspAdcGetValue(RESERVED_48V_I_ADC, &gReserved48v_If);
|
|
ToolFloatToUint32(gReserved48v_If, &gReserved48v_Iu32);
|
|
gReserved48vStatus = ((TaskOutPutGpioGet(RESERVED_48V_CHANNEL_ID) << 4) & 0xf0) | (TaskOutPutGpioStatusGet(RESERVED_48V_CHANNEL_ID) & 0x0f);
|
|
/* 24V预留端口 */
|
|
*(&gReserved24v_Vu32) = 0; // 去除警告
|
|
*(&gReserved24v_Vf) = 0.0f; // 去除警告
|
|
McuBspAdcGetValue(RESERVED_24V_I_ADC, &gReserved24v_If);
|
|
ToolFloatToUint32(gReserved24v_If, &gReserved24v_Iu32);
|
|
gReserved24vStatus = ((TaskOutPutGpioGet(RESERVED_24V_CHANNEL_ID) << 4) & 0xf0) | (TaskOutPutGpioStatusGet(RESERVED_24V_CHANNEL_ID) & 0x0f);
|
|
/* 12V预留端口 */
|
|
*(&gReserved12v_Vu32) = 0; // 去除警告
|
|
*(&gReserved12v_Vf) = 0.0f; // 去除警告
|
|
McuBspAdcGetValue(RESERVED_12V_I_ADC, &gReserved12v_If);
|
|
ToolFloatToUint32(gReserved12v_If, &gReserved12v_Iu32);
|
|
gReserved12vStatus = ((TaskOutPutGpioGet(RESERVED_12V_CHANNEL_ID) << 4) & 0xf0) | (TaskOutPutGpioStatusGet(RESERVED_12V_CHANNEL_ID) & 0x0f);
|
|
/* 多参数 */
|
|
*(&gManyPara_Vu32) = 0; // 去除警告
|
|
*(&gManyPara_Vf) = 0.0f; // 去除警告
|
|
McuBspAdcGetValue(MANYPARA_I_ADC, &gManyPara_If);
|
|
ToolFloatToUint32(gManyPara_If, &gManyPara_Iu32);
|
|
gManyParaStatus = ((TaskOutPutGpioGet(MANYPARA_CHANNEL_ID) << 4) & 0xf0) | (TaskOutPutGpioStatusGet(MANYPARA_CHANNEL_ID) & 0x0f);
|
|
/* ADCP */
|
|
*(&gADCP_Vu32) = 0; // 去除警告
|
|
*(&gADCP_Vf) = 0.0f; // 去除警告
|
|
McuBspAdcGetValue(ADCP_I_ADC, &gADCP_If);
|
|
ToolFloatToUint32(gADCP_If, &gADCP_Iu32);
|
|
gADCPStatus = ((TaskOutPutGpioGet(ADCP_CHANNEL_ID) << 4) & 0xf0) | (TaskOutPutGpioStatusGet(ADCP_CHANNEL_ID) & 0x0f);
|
|
/* CTD */
|
|
*(&gCTD_Vu32) = 0; // 去除警告
|
|
*(&gCTD_Vf) = 0.0f; // 去除警告
|
|
McuBspAdcGetValue(CTD_I_ADC, &gCTD_If);
|
|
ToolFloatToUint32(gCTD_If, &gCTD_Iu32);
|
|
gCTDStatus = ((TaskOutPutGpioGet(CTD_CHANNEL_ID) << 4) & 0xf0) | (gTaskOutputGpioOutputDpcSta.CTDIn & 0x0f);
|
|
/* UV1 */
|
|
*(&gUV1_Vu32) = 0; // 去除警告
|
|
*(&gUV1_Vf) = 0.0f; // 去除警告
|
|
McuBspAdcGetValue(UV1_I_ADC, &gUV1_If);
|
|
ToolFloatToUint32(gUV1_If, &gUV1_Iu32);
|
|
gUV1Status = ((TaskOutPutGpioGet(UV1_CHANNEL_ID) << 4) & 0xf0) | (gTaskOutputGpioOutputDpcSta.UV1In & 0x0f);
|
|
/* UV2 */
|
|
*(&gUV2_Vu32) = 0; // 去除警告
|
|
*(&gUV2_Vf) = 0.0f; // 去除警告
|
|
McuBspAdcGetValue(UV2_I_ADC, &gUV2_If);
|
|
ToolFloatToUint32(gUV2_If, &gUV2_Iu32);
|
|
gUV2Status = ((TaskOutPutGpioGet(UV2_CHANNEL_ID) << 4) & 0xf0) | (gTaskOutputGpioOutputDpcSta.UV2In & 0x0f);
|
|
/* UV3 */
|
|
*(&gUV3_Vu32) = 0; // 去除警告
|
|
*(&gUV3_Vf) = 0.0f; // 去除警告
|
|
McuBspAdcGetValue(UV3_I_ADC, &gUV3_If);
|
|
ToolFloatToUint32(gUV3_If, &gUV3_Iu32);
|
|
gUV3Status = ((TaskOutPutGpioGet(UV3_CHANNEL_ID) << 4) & 0xf0) | (gTaskOutputGpioOutputDpcSta.UV3In & 0x0f);
|
|
/* UV4 */
|
|
*(&gUV4_Vu32) = 0; // 去除警告
|
|
*(&gUV4_Vf) = 0.0f; // 去除警告
|
|
McuBspAdcGetValue(UV4_I_ADC, &gUV4_If);
|
|
ToolFloatToUint32(gUV4_If, &gUV4_Iu32);
|
|
gUV4Status = ((TaskOutPutGpioGet(UV4_CHANNEL_ID) << 4) & 0xf0) | (gTaskOutputGpioOutputDpcSta.UV4In & 0x0f);
|
|
/* CO2 */
|
|
*(&gCO2_Vu32) = 0; // 去除警告
|
|
*(&gCO2_Vf) = 0.0f; // 去除警告
|
|
McuBspAdcGetValue(CO2_I_ADC, &gCO2_If);
|
|
ToolFloatToUint32(gCO2_If, &gCO2_Iu32);
|
|
gCO2Status = ((TaskOutPutGpioGet(CO2_CHANNEL_ID) << 4) & 0xf0) | (gTaskOutputGpioOutputDpcSta.CO2In & 0x0f);
|
|
/* 影像处理舱 */
|
|
*(&gVedio_Vf) = gTaskOutputGpioOutputDpcSta.VedioV;
|
|
*(&gVedio_If) = gTaskOutputGpioOutputDpcSta.VedioI;
|
|
ToolFloatToUint32(gVedio_Vf, &gVedio_Vu32);
|
|
ToolFloatToUint32(gVedio_If, &gVedio_Iu32);
|
|
*(&gVedioStatus) = 0; // 去除警告
|
|
/* 照明灯 */
|
|
*(&gLamp_Vu32) = 0; // 去除警告
|
|
*(&gLamp_Vf) = 0.0f; // 去除警告
|
|
McuBspAdcGetValue(LAMP_I_ADC, &gLamp_If);
|
|
ToolFloatToUint32(gLamp_If, &gLamp_Iu32);
|
|
gLampStatus = ((TaskOutPutGpioGet(LAMP_CHANNEL_ID) << 4) & 0xf0) | (TaskOutPutGpioStatusGet(LAMP_CHANNEL_ID) & 0x0f);
|
|
|
|
gTaskOutputGpioSendBuf[0] = 1;
|
|
gTaskOutputGpioSendBuf[1] = (gReserved48v_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[2] = (gReserved48v_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[3] = (gReserved48v_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[4] = gReserved48v_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[5] = (gReserved48v_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[6] = (gReserved48v_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[7] = (gReserved48v_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[8] = gReserved48v_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[9] = gReserved48vStatus;
|
|
|
|
gTaskOutputGpioSendBuf[10] = (gReserved24v_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[11] = (gReserved24v_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[12] = (gReserved24v_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[13] = gReserved24v_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[14] = (gReserved24v_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[15] = (gReserved24v_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[16] = (gReserved24v_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[17] = gReserved24v_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[18] = gReserved24vStatus;
|
|
|
|
gTaskOutputGpioSendBuf[19] = (gReserved12v_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[20] = (gReserved12v_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[21] = (gReserved12v_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[22] = gReserved12v_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[23] = (gReserved12v_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[24] = (gReserved12v_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[25] = (gReserved12v_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[26] = gReserved12v_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[27] = gReserved12vStatus;
|
|
|
|
gTaskOutputGpioSendBuf[28] = (gManyPara_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[29] = (gManyPara_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[30] = (gManyPara_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[31] = gManyPara_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[32] = (gManyPara_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[33] = (gManyPara_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[34] = (gManyPara_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[35] = gManyPara_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[36] = gManyParaStatus;
|
|
|
|
gTaskOutputGpioSendBuf[37] = (gCTD_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[38] = (gCTD_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[39] = (gCTD_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[40] = gCTD_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[41] = (gCTD_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[42] = (gCTD_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[43] = (gCTD_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[44] = gCTD_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[45] = gCTDStatus;
|
|
|
|
gTaskOutputGpioSendBuf[46] = (gADCP_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[47] = (gADCP_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[48] = (gADCP_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[49] = gADCP_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[50] = (gADCP_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[51] = (gADCP_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[52] = (gADCP_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[53] = gADCP_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[54] = gADCPStatus;
|
|
|
|
gTaskOutputGpioSendBuf[55] = (gUV1_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[56] = (gUV1_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[57] = (gUV1_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[58] = gUV1_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[59] = (gUV1_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[60] = (gUV1_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[61] = (gUV1_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[62] = gUV1_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[63] = gUV1Status;
|
|
|
|
gTaskOutputGpioSendBuf[64] = (gUV2_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[65] = (gUV2_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[66] = (gUV2_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[67] = gUV2_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[68] = (gUV2_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[69] = (gUV2_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[70] = (gUV2_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[71] = gUV2_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[72] = gUV2Status;
|
|
|
|
gTaskOutputGpioSendBuf[73] = (gUV3_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[74] = (gUV3_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[75] = (gUV3_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[76] = gUV3_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[77] = (gUV3_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[78] = (gUV3_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[79] = (gUV3_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[80] = gUV3_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[81] = gUV3Status;
|
|
|
|
gTaskOutputGpioSendBuf[82] = (gUV4_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[83] = (gUV4_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[84] = (gUV4_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[85] = gUV4_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[86] = (gUV4_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[87] = (gUV4_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[88] = (gUV4_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[89] = gUV4_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[90] = gUV4Status;
|
|
|
|
gTaskOutputGpioSendBuf[91] = (gCO2_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[92] = (gCO2_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[93] = (gCO2_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[94] = gCO2_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[95] = (gCO2_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[96] = (gCO2_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[97] = (gCO2_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[98] = gCO2_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[99] = gCO2Status;
|
|
|
|
gTaskOutputGpioSendBuf[100] = (gVedio_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[101] = (gVedio_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[102] = (gVedio_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[103] = gVedio_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[104] = (gVedio_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[105] = (gVedio_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[106] = (gVedio_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[107] = gVedio_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[108] = gVedioStatus;
|
|
|
|
gTaskOutputGpioSendBuf[109] = (gLamp_Vu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[110] = (gLamp_Vu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[111] = (gLamp_Vu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[112] = gLamp_Vu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[113] = (gLamp_Iu32 >> 24) & 0xff;
|
|
gTaskOutputGpioSendBuf[114] = (gLamp_Iu32 >> 16) & 0xff;
|
|
gTaskOutputGpioSendBuf[115] = (gLamp_Iu32 >> 8) & 0xff;
|
|
gTaskOutputGpioSendBuf[116] = gLamp_Iu32 & 0xff;
|
|
gTaskOutputGpioSendBuf[117] = gLampStatus;
|
|
/* 发送数据 */
|
|
TaskUpcCommSendMessage(TASK_OUTPUT_GPIO_MESSGAE_ID, &gTaskOutPutGpioSendSerial, gTaskOutputGpioSendBuf, sizeof(gTaskOutputGpioSendBuf));
|
|
TaskOutPutGpioDisable();
|
|
gTaskOutPutGpioSendSerial++;
|
|
sprintf(gTaskOutPutGpioFileDataBuf, "Reserved48v_Vf:%0.2f,Reserved48v_If:%0.2f,Reserved48vStatus:0x%x,\
|
|
Reserved24v_Vf:%0.2f,Reserved24v_If:%0.2f,Reserved24vStatus:0x%x,\
|
|
Reserved12v_Vf:%0.2f,Reserved12v_If:%0.2f,Reserved12vStatus:0x%x,\
|
|
ManyPara_Vf:%0.2f,ManyPara_If:%0.2f,ManyParaStatus:0x%x,\
|
|
CTD_Vf:%0.2f,CTD_If:%0.2f,CTD:0x%x,\
|
|
ADCP_Vf:%0.2f,ADCP_If:%0.2f,ADCPStatus:0x%x,\
|
|
UV1_Vf:%0.2f,UV1_If:%0.2f,UV1Status:0x%x,\
|
|
UV2_Vf:%0.2f,UV2_If:%0.2f,UV2Status:0x%x,\
|
|
UV3_Vf:%0.2f,UV3_If:%0.2f,UV3Status:0x%x,\
|
|
UV4_Vf:%0.2f,UV4_If:%0.2f,UV4Status:0x%x,\
|
|
CO2_Vf:%0.2f,CO2_If:%0.2f,CO2Status:0x%x,\
|
|
Vedio_Vf:%0.2f,Vedio_If:%0.2f,VedioStatus:0x%x,\
|
|
Lamp_Vf:%0.2f,Lamp_If:%0.2f,LampStatus:0x%x", gReserved48v_Vf, gReserved48v_If, gReserved48vStatus,
|
|
gReserved24v_Vf, gReserved24v_If, gReserved24vStatus, gReserved12v_Vf, gReserved12v_If, gReserved12vStatus,
|
|
gManyPara_Vf, gManyPara_If, gManyParaStatus, gCTD_Vf, gCTD_If, gCTDStatus, gADCP_Vf, gADCP_If, gADCPStatus,
|
|
gUV1_Vf, gUV1_If, gUV1Status, gUV2_Vf, gUV2_If, gUV2Status, gUV3_Vf, gUV3_If, gUV3Status,
|
|
gUV4_Vf, gUV4_If, gUV4Status, gCO2_Vf, gCO2_If, gCO2Status, gVedio_Vf, gVedio_If, gVedioStatus, gLamp_Vf, gLamp_If, gLampStatus);
|
|
TaskFileDataWrite(TASK_OUTPUT_GPIO_FILE_TYPE, gTaskOutPutGpioFileDataBuf, strlen(gTaskOutPutGpioFileDataBuf),&RealWbyte);
|
|
}
|
|
}
|
|
|
|
void TaskOutPutGpioEnable(void)
|
|
{
|
|
gTaskOutputGpioPickEnable = 1;
|
|
}
|
|
|
|
void TaskOutPutGpioDisable(void)
|
|
{
|
|
gTaskOutputGpioPickEnable = 0;
|
|
}
|
|
|
|
void TaskOutPutGpioSet(uint8_t OutPutGpioId, uint8_t Status)
|
|
{
|
|
uint32_t OutputSta = 0;
|
|
if (Status == OUTPUT_GPIO_HIGH) {
|
|
OutputSta = 1;
|
|
switch (OutPutGpioId) {
|
|
case CO2_CHANNEL_ID:
|
|
GPIOPinWrite(CO2_CTRL_GPIO, CO2_CTRL_PIN, CO2_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(CO2_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case CTD_CHANNEL_ID:
|
|
GPIOPinWrite(CTD_CTRL_GPIO, CTD_CTRL_PIN, CTD_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(CTD_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case UV1_CHANNEL_ID:
|
|
GPIOPinWrite(UV1_CTRL_GPIO, UV1_CTRL_PIN, UV1_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(UV1_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case UV2_CHANNEL_ID:
|
|
GPIOPinWrite(UV2_CTRL_GPIO, UV2_CTRL_PIN, UV2_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(UV2_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case UV3_CHANNEL_ID:
|
|
GPIOPinWrite(UV3_CTRL_GPIO, UV3_CTRL_PIN, UV3_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(UV3_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case UV4_CHANNEL_ID:
|
|
GPIOPinWrite(UV4_CTRL_GPIO, UV4_CTRL_PIN, UV4_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(UV4_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case MANYPARA_CHANNEL_ID:
|
|
GPIOPinWrite(MANYPARA_CTRL_GPIO, MANYPARA_CTRL_PIN, MANYPARA_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(MANYPARA_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case ADCP_CHANNEL_ID:
|
|
GPIOPinWrite(ADCP_CTRL_GPIO, ADCP_CTRL_PIN, ADCP_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(ADCP_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case RESERVED_12V_CHANNEL_ID:
|
|
GPIOPinWrite(RESERVED_12V_CTRL_GPIO, RESERVED_12V_CTRL_PIN, RESERVED_12V_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(RESERVED_12V_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case RESERVED_24V_CHANNEL_ID:
|
|
GPIOPinWrite(RESERVED_24V_CTRL_GPIO, RESERVED_24V_CTRL_PIN, RESERVED_24V_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(RESERVED_24V_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case RESERVED_48V_CHANNEL_ID:
|
|
GPIOPinWrite(RESERVED_48V_CTRL_GPIO, RESERVED_48V_CTRL_PIN, RESERVED_48V_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(RESERVED_48V_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case LAMP_CHANNEL_ID:
|
|
GPIOPinWrite(LAMP_CTRL_GPIO, LAMP_CTRL_PIN, LAMP_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(LAMP_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
} else if (Status == OUTPUT_GPIO_LOW) {
|
|
switch (OutPutGpioId) {
|
|
case CO2_CHANNEL_ID:
|
|
GPIOPinWrite(CO2_CTRL_GPIO, CO2_CTRL_PIN, ~CO2_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(CO2_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case CTD_CHANNEL_ID:
|
|
GPIOPinWrite(CTD_CTRL_GPIO, CTD_CTRL_PIN, ~CTD_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(CTD_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case UV1_CHANNEL_ID:
|
|
GPIOPinWrite(UV1_CTRL_GPIO, UV1_CTRL_PIN, ~UV1_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(UV1_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case UV2_CHANNEL_ID:
|
|
GPIOPinWrite(UV2_CTRL_GPIO, UV2_CTRL_PIN, ~UV2_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(UV2_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case UV3_CHANNEL_ID:
|
|
GPIOPinWrite(UV3_CTRL_GPIO, UV3_CTRL_PIN, ~UV3_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(UV3_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case UV4_CHANNEL_ID:
|
|
GPIOPinWrite(UV4_CTRL_GPIO, UV4_CTRL_PIN, ~UV4_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(UV4_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case MANYPARA_CHANNEL_ID:
|
|
GPIOPinWrite(MANYPARA_CTRL_GPIO, MANYPARA_CTRL_PIN, ~MANYPARA_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(MANYPARA_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case ADCP_CHANNEL_ID:
|
|
GPIOPinWrite(ADCP_CTRL_GPIO, ADCP_CTRL_PIN, ~ADCP_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(ADCP_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case RESERVED_12V_CHANNEL_ID:
|
|
GPIOPinWrite(RESERVED_12V_CTRL_GPIO, RESERVED_12V_CTRL_PIN, ~RESERVED_12V_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(RESERVED_12V_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case RESERVED_24V_CHANNEL_ID:
|
|
GPIOPinWrite(RESERVED_24V_CTRL_GPIO, RESERVED_24V_CTRL_PIN, ~RESERVED_24V_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(RESERVED_24V_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case RESERVED_48V_CHANNEL_ID:
|
|
GPIOPinWrite(RESERVED_48V_CTRL_GPIO, RESERVED_48V_CTRL_PIN, ~RESERVED_48V_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(RESERVED_48V_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
case LAMP_CHANNEL_ID:
|
|
GPIOPinWrite(LAMP_CTRL_GPIO, LAMP_CTRL_PIN, ~LAMP_CTRL_PIN);
|
|
if (gInitFlag == 1) {
|
|
McuBspEepromSaveValue(LAMP_CTRL_STA_EEPROM_ADDR, &OutputSta, sizeof(OutputSta));
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int TaskOutPutGpioGet(uint8_t OutPutGpioId)
|
|
{
|
|
switch (OutPutGpioId) {
|
|
case CO2_CHANNEL_ID:
|
|
if (CO2_CTRL_PIN == GPIOPinRead(CO2_CTRL_GPIO, CO2_CTRL_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case CTD_CHANNEL_ID:
|
|
if (CTD_CTRL_PIN == GPIOPinRead(CTD_CTRL_GPIO, CTD_CTRL_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case UV1_CHANNEL_ID:
|
|
if (UV1_CTRL_PIN == GPIOPinRead(UV1_CTRL_GPIO, UV1_CTRL_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case UV2_CHANNEL_ID:
|
|
if (UV2_CTRL_PIN == GPIOPinRead(UV2_CTRL_GPIO, UV2_CTRL_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case UV3_CHANNEL_ID:
|
|
if (UV3_CTRL_PIN == GPIOPinRead(UV3_CTRL_GPIO, UV3_CTRL_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case UV4_CHANNEL_ID:
|
|
if (UV4_CTRL_PIN == GPIOPinRead(UV4_CTRL_GPIO, UV4_CTRL_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case MANYPARA_CHANNEL_ID:
|
|
if (MANYPARA_CTRL_PIN == GPIOPinRead(MANYPARA_CTRL_GPIO, MANYPARA_CTRL_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case ADCP_CHANNEL_ID:
|
|
if (ADCP_CTRL_PIN == GPIOPinRead(ADCP_CTRL_GPIO, ADCP_CTRL_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case RESERVED_12V_CHANNEL_ID:
|
|
if (RESERVED_12V_CTRL_PIN == GPIOPinRead(RESERVED_12V_CTRL_GPIO, RESERVED_12V_CTRL_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case RESERVED_24V_CHANNEL_ID:
|
|
if (RESERVED_24V_CTRL_PIN == GPIOPinRead(RESERVED_24V_CTRL_GPIO, RESERVED_24V_CTRL_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case RESERVED_48V_CHANNEL_ID:
|
|
if (RESERVED_48V_CTRL_PIN == GPIOPinRead(RESERVED_48V_CTRL_GPIO, RESERVED_48V_CTRL_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case LAMP_CHANNEL_ID:
|
|
if (LAMP_CTRL_PIN == GPIOPinRead(LAMP_CTRL_GPIO, LAMP_CTRL_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
default:
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
static int TaskOutPutGpioStatusGet(uint8_t OutPutGpioId)
|
|
{
|
|
switch (OutPutGpioId) {
|
|
case MANYPARA_CHANNEL_ID:
|
|
if (MANYPARA_INPUT_PIN == GPIOPinRead(MANYPARA_INPUT_GPIO, MANYPARA_INPUT_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case ADCP_CHANNEL_ID:
|
|
if (ADCP_INPUT_PIN == GPIOPinRead(ADCP_INPUT_GPIO, ADCP_INPUT_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case RESERVED_12V_CHANNEL_ID:
|
|
if (RESERVED_12V_INPUT_PIN == GPIOPinRead(RESERVED_12V_INPUT_GPIO, RESERVED_12V_INPUT_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case RESERVED_24V_CHANNEL_ID:
|
|
if (RESERVED_24V_INPUT_PIN == GPIOPinRead(RESERVED_24V_INPUT_GPIO, RESERVED_24V_INPUT_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case RESERVED_48V_CHANNEL_ID:
|
|
if (RESERVED_48V_INPUT_PIN == GPIOPinRead(RESERVED_48V_INPUT_GPIO, RESERVED_48V_INPUT_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
case LAMP_CHANNEL_ID:
|
|
if (LAMP_INPUT_PIN == GPIOPinRead(LAMP_INPUT_GPIO, LAMP_INPUT_PIN)) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
default:
|
|
return -1;
|
|
}
|
|
}
|