#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 #include #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); GPIOPadConfigSet(RESERVED_48V_INPUT_GPIO, RESERVED_48V_INPUT_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); /************************ 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); GPIOPadConfigSet(RESERVED_24V_INPUT_GPIO, RESERVED_24V_INPUT_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); /************************ 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); GPIOPadConfigSet(RESERVED_12V_INPUT_GPIO, RESERVED_12V_INPUT_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); /************************ 多参数的初始化 *****************************/ 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); GPIOPadConfigSet(MANYPARA_INPUT_GPIO, MANYPARA_INPUT_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); /************************ 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); GPIOPadConfigSet(ADCP_INPUT_GPIO, ADCP_INPUT_PIN, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD); /************************* 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; } }