| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- #include "user_server.h"
- #include "modbus.h"
- #include "user_led.h"
- static uint32_t ulUser_server_delaycount = 0;
- coll_data_s coll_data = {
- .count = 1,
- .sw_stat = {COLL_FAULT_ITEMS},
- .items_stat = {NO_ITEMS_STAT},
- };
- /*******************************************************************************
- * @函数名称 vUser_server_set_led_stat
- * @函数说明 设置LED灯变化
- * @输入参数 idx:底座号
- * @输出参数 无
- * @返回参数 无
- *******************************************************************************/
- static void vUser_server_set_led_stat(void)
- {
- for(int i = 0; i < DEV_MAX_COUNT; i++)
- {
- if(coll_data.items_stat[i] == NO_ITEMS_STAT)
- {
- if(coll_data.sw_stat[i] == COLL_ITEMS)
- {
- vUser_led_set_view_stat(i, LED_VIEW_ITEMS);
- }
- else if(coll_data.sw_stat[i] == COLL_NO_ITEMS)
- {
- vUser_led_set_view_stat(i, LED_VIEW_NO_ITEMS);
- }
- else if(coll_data.sw_stat[i] == COLL_FAULT_ITEMS)
- {
- vUser_led_set_view_stat(i, LED_VIEW_NO_BOARD);
- }
- }
- else if(coll_data.items_stat[i] == TAKE_ITEMS_STAT)
- {
- if(coll_data.sw_stat[i] == COLL_ITEMS)
- {
- vUser_led_set_view_stat(i, LED_VIEW_TAKE_ITEMS);
- }
- else if(coll_data.sw_stat[i] == COLL_NO_ITEMS)
- {
- vUser_led_set_view_stat(i, LED_VIEW_NO_ITEMS);
- }
- else if(coll_data.sw_stat[i] == COLL_FAULT_ITEMS)
- {
- vUser_led_set_view_stat(i, LED_VIEW_NO_BOARD);
- }
- }
- else if(coll_data.items_stat[i] == PUT_ITEMS_STAT)
- {
- if(coll_data.sw_stat[i] == COLL_ITEMS)
- {
- vUser_led_set_view_stat(i, LED_VIEW_NO_ITEMS);
- }
- else if(coll_data.sw_stat[i] == COLL_NO_ITEMS)
- {
- vUser_led_set_view_stat(i, LED_VIEW_PUT_ITEMS);
- }
- else if(coll_data.sw_stat[i] == COLL_FAULT_ITEMS)
- {
- vUser_led_set_view_stat(i, LED_VIEW_NO_BOARD);
- }
- }
- }
- }
- /*******************************************************************************
- * @函数名称 vUser_server_set_sw_stat
- * @函数说明 设置开关量状态
- * @输入参数 stat:开关量状态
- * @输出参数 无
- * @返回参数 无
- *******************************************************************************/
- void vUser_server_set_download_sw_stat(uint32_t stat)
- {
- for(int i = 0; i < DEV_MAX_COUNT; i++)
- {
- if(i < coll_data.count)
- {
- coll_data.sw_stat[i] = (uint8_t)(stat >> (i * 2)) & 0x03;
- }
- else{
- coll_data.sw_stat[i] = COLL_FAULT_ITEMS;
- }
- }
- vUser_server_set_led_stat();
- }
- /*******************************************************************************
- * @函数名称 vUser_server_set_coll_stat
- * @函数说明 设置就绪状态
- * @输入参数 count:下挂主板个数
- * @输出参数 无
- * @返回参数 无
- *******************************************************************************/
- void vUser_server_set_coll_stat(uint16_t count)
- {
- coll_data.count = count;
- if(count > 0)
- {
- coll_data.coll_stat = COLL_READY_STAT;
- }
- else{
- coll_data.coll_stat = COLL_NOT_READY_STAT;
- }
- for(int i = coll_data.count = count; i < DEV_MAX_COUNT; i++)
- {
- coll_data.sw_stat[i] = COLL_FAULT_ITEMS;
- }
- }
- /*******************************************************************************
- * @函数名称 vUser_server_set_items_stat
- * @函数说明 设置物资灯状态
- * @输入参数 idx:下标
- * type:状态
- * @输出参数 无
- * @返回参数 无
- *******************************************************************************/
- void vUser_server_set_items_stat(uint8_t idx, items_stat_type_e type)
- {
- coll_data.items_stat[idx] = type;
- vUser_server_set_led_stat();
- }
- /*******************************************************************************
- * @函数名称 vUser_server_init
- * @函数说明 初始化
- * @输入参数 无
- * @输出参数 无
- * @返回参数 无
- *******************************************************************************/
- void vUser_server_init(void)
- {
- for(int i = 0; i < DEV_MAX_COUNT; i++)
- {
- coll_data.sw_stat[i] = COLL_FAULT_ITEMS;
- coll_data.items_stat[i] = NO_ITEMS_STAT;
- }
- vUser_server_set_led_stat();
- }
|