#include "ccu_port.h" #include "adcgpio.h" #include "hdc1080.h" #include "ads1115.h" #include "epwm.h" #include "acrel_DJSF1352RN.h" #include "gydcg_UBCH2.h" #include "M4255_NFC.h" #include "interface.h" epwm_t am62x_epwm1; static DCMeter_t dcMeter; static DCGround_t dcGround; static M4255_t nfcReader; static hdc_1080_t hdc1080; static ads_1115_t box1115; static ads_1115_t gun1115; /***************************************************************************************** * 功能描述: 设置SYS系统的LED状态 * LEDID: 1-6 *****************************************************************************************/ void ccu_Set_LED(void *self, int LEDID, int on) { switch(LEDID) { case 0: set_gpio_value(SOC_GPIO0, 33, on); break; case 1: set_gpio_value(SOC_GPIO0, 34, on); break; case 2: set_gpio_value(SOC_GPIO0, 36, on); break; case 3: set_gpio_value(SOC_GPIO0, 39, on); break; case 5: set_gpio_value(SOC_GPIO0, 38, on); break; case 6: set_gpio_value(SOC_GPIO0, 40, on); break; } } /***************************************************************************************** * 功能描述: 设置SYS系统的固态继电器开断(控制系统风扇) *****************************************************************************************/ void ccu_Set_FanSSR(void *self, int on) { set_gpio_value(TCA6416_2, 9, on); } /***************************************************************************************** * 功能描述: 设置SYS系统的固态继电器开断(控制热泵系统) *****************************************************************************************/ void ccu_Set_HPumpSSR(void *self, int on) { set_gpio_value(TCA6416_2, 10, on); } /***************************************************************************************** * 功能描述: 获取SYS系统风扇A端状态 *****************************************************************************************/ int ccu_Get_FanFBA(void *self) { return !get_gpio_value(TCA6416_2, 6); } /***************************************************************************************** * 功能描述: 获取SYS系统风扇B端状态 *****************************************************************************************/ int ccu_Get_FanFBB(void *self) { return !get_gpio_value(TCA6416_2, 7); } /***************************************************************************************** * 功能描述: 获取SYS系统风扇C端状态 *****************************************************************************************/ int ccu_Get_FanFBC(void *self) { return !get_gpio_value(TCA6416_2, 8); } /***************************************************************************************** * 功能描述: 获取SYS系统水浸开关状态 *****************************************************************************************/ int ccu_Get_WATFB(void *self) { return get_gpio_value(TCA6416_2, 13); } /***************************************************************************************** * 功能描述: 获取SYS系统门禁开关状态 *****************************************************************************************/ int ccu_Get_GATFB(void *self) { return !get_gpio_value(TCA6416_2, 14); } /***************************************************************************************** * 功能描述: 获取SYS系统急停按钮状态 *****************************************************************************************/ int ccu_Get_EMGFB(void *self) { return !get_gpio_value(TCA6416_2, 15); } /***************************************************************************************** * 功能描述: 获取SYS系统防雷反馈A端状态 *****************************************************************************************/ int ccu_Get_LGPTFA(void *self) { return !get_gpio_value(TCA6416_2, 11); } /***************************************************************************************** * 功能描述: 获取SYS系统防雷反馈B状态 *****************************************************************************************/ int ccu_Get_LGPTFB(void *self) { return 0; return !get_gpio_value(TCA6416_2, 12); } /***************************************************************************************** * 功能描述: 获取BOX温度 *****************************************************************************************/ float ccu_Get_BOX_Temp(void *self, int idx) { switch(idx) { case 0: return bsp_ads1115_getVoltage0(&box1115); case 1: return bsp_ads1115_getVoltage1(&box1115); case 2: return bsp_ads1115_getVoltage2(&box1115); case 3: return bsp_ads1115_getVoltage3(&box1115); } return 0; } float ccu_Get_GUN_Temp(void *self, int idx) { // switch(idx) // { // case 0: return bsp_ads1115_getVoltage0(&gun1115); // case 1: return bsp_ads1115_getVoltage1(&gun1115); // case 2: return bsp_ads1115_getVoltage2(&gun1115); // case 3: return bsp_ads1115_getVoltage3(&gun1115); // } return 0; } void ccu_Read_DCMeterA(void *self, float* VMeter, float* IMeter, float* PMeter, float* EMeter) { ccu_DCMeterA_check(&dcMeter, VMeter, IMeter, PMeter, EMeter); } void ccu_Read_DCMeterB(void *self, float* VMeter, float* IMeter, float* PMeter, float* EMeter) { ccu_DCMeterB_check(&dcMeter, VMeter, IMeter, PMeter, EMeter); } void ccu_set_DCGroundA_state(void* self, int onoff) { dcGround.onoff[0] = onoff; } void ccu_set_DCGroundB_state(void* self, int onoff) { dcGround.onoff[1] = onoff; } void ccu_Read_DCGroundA(void *self, float* VGround, float* RGround) { ccu_DCGroundA_check(&dcGround, VGround, RGround); } void ccu_Read_DCGroundB(void *self, float* VGround, float* RGround) { ccu_DCGroundB_check(&dcGround, VGround, RGround); if ((VGround[0] - dcMeter.current_V[1]) > 50.0f) { dcGround.tty.debug = 1; }else{ dcGround.tty.debug = 0; } } int ccu_Get_NFC_CardID(void* self, int timeout, char* card_id) { int ret = -1; ccu_NFCReader_set_Beep(&nfcReader, 0); ccu_NFCReader_set_ReadOnce(&nfcReader, M4255_READ_ONLYONCE); ccu_NFCReader_set_WorkMode(&nfcReader, M4255_AUTO_READ_CARDID); for(; timeout > 0 && ret < 0; timeout -= 200) { ret = ccu_NFCReader_wait_CardID(&nfcReader, 200, card_id); } if (ret == 0) { ccu_NFCReader_force_Beep(&nfcReader, 1); msleep(200); } ccu_NFCReader_set_WorkMode(&nfcReader, M4255_CMD_MODE); ccu_NFCReader_force_Beep(&nfcReader, 0); return ret; } /***************************************************************************************** * 功能描述: SYS系统初始化 *****************************************************************************************/ int ccu_BSP_init(void) { config_gpio_in(TCA6416_2, 0); config_gpio_in(TCA6416_2, 1); config_gpio_in(TCA6416_2, 2); config_gpio_in(TCA6416_2, 3); config_gpio_in(TCA6416_2, 4); config_gpio_in(TCA6416_2, 5); config_gpio_in(TCA6416_2, 6); config_gpio_in(TCA6416_2, 7); config_gpio_in(TCA6416_2, 8); config_gpio_out(TCA6416_2, 9, 0); config_gpio_out(TCA6416_2, 10, 0); config_gpio_in(TCA6416_2, 11); config_gpio_in(TCA6416_2, 12); config_gpio_in(TCA6416_2, 13); config_gpio_in(TCA6416_2, 14); config_gpio_in(TCA6416_2, 15); config_gpio_in(TCA6408_1, 0); config_gpio_in(TCA6408_1, 1); config_gpio_in(TCA6408_1, 2); config_gpio_in(TCA6408_1, 3); config_gpio_in(TCA6408_1, 4); config_gpio_in(TCA6408_1, 5); config_gpio_in(TCA6408_1, 6); config_gpio_out(SOC_GPIO0, 33, 0); config_gpio_out(SOC_GPIO0, 34, 0); config_gpio_out(SOC_GPIO0, 36, 0); config_gpio_out(SOC_GPIO0, 39, 0); config_gpio_out(SOC_GPIO0, 38, 0); config_gpio_out(SOC_GPIO0, 40, 0); bsp_hdc1080_init(&hdc1080, I2C1_0x40); bsp_ads1115_init(&box1115, I2C2_0x48); // bsp_ads1115_init(&gun1115, I2C2_0x49); bsp_epwm_init(&am62x_epwm1, EPWM_NAME); ccu_DCMeter_init(&dcMeter, "/dev/ttyS4"); ccu_DCGround_init(&dcGround, "/dev/ttyS6"); ccu_NFCReader_Init(&nfcReader, "/dev/ttyS2"); return 0; } /***************************************************************************************** * 功能描述: SYS系统退出并清理资源 *****************************************************************************************/ void ccu_BSP_exit(void) { config_gpio_free(TCA6416_2, 0); config_gpio_free(TCA6416_2, 1); config_gpio_free(TCA6416_2, 2); config_gpio_free(TCA6416_2, 3); config_gpio_free(TCA6416_2, 4); config_gpio_free(TCA6416_2, 5); config_gpio_free(TCA6416_2, 6); config_gpio_free(TCA6416_2, 7); config_gpio_free(TCA6416_2, 8); config_gpio_free(TCA6416_2, 9); config_gpio_free(TCA6416_2, 10); config_gpio_free(TCA6416_2, 11); config_gpio_free(TCA6416_2, 12); config_gpio_free(TCA6416_2, 13); config_gpio_free(TCA6416_2, 14); config_gpio_free(TCA6416_2, 15); config_gpio_free(TCA6408_1, 0); config_gpio_free(TCA6408_1, 1); config_gpio_free(TCA6408_1, 2); config_gpio_free(TCA6408_1, 3); config_gpio_free(TCA6408_1, 4); config_gpio_free(TCA6408_1, 5); config_gpio_free(TCA6408_1, 6); config_gpio_free(SOC_GPIO0, 33); config_gpio_free(SOC_GPIO0, 34); config_gpio_free(SOC_GPIO0, 36); config_gpio_free(SOC_GPIO0, 39); config_gpio_free(SOC_GPIO0, 38); config_gpio_free(SOC_GPIO0, 40); bsp_hdc1080_exit(&hdc1080); bsp_ads1115_exit(&box1115); // bsp_ads1115_exit(&gun1115); bsp_epwm_exit(&am62x_epwm1); ccu_DCMeter_exit(&dcMeter); ccu_DCGround_exit(&dcGround); ccu_NFCReader_Exit(&nfcReader); }