#ifndef _FLUX_PROTOCOL_H #define _FLUX_PROTOCOL_H #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/queue.h" #include "freertos/semphr.h" #include "freertos/event_groups.h" #include "ui.h" #include "FluxUart.h" extern float Spirit3_Volume[4]; extern float Spirit6_Volume[6]; extern float YULite8_Volume[6]; typedef enum DeviceType{ Spirit3, Spirit6, YU_Lite8, }; typedef struct FluxProtocol { float testVolume; uint16_t currentStage; uint16_t currentBPM; float nominalVolumeStage; float nominalVolumeBPM; float nominalVolumeMax; float nominalVolumeMin; enum DeviceType currentDevice; }; extern struct FluxProtocol fluxProtocol; /*流量计通讯数据格式*/ typedef enum OperationMode { Normal,//正常模式,收到开始命令后开始进行累积计算,停止指令收到后停止积分 Timer,//计时模式,计算在设定时间内的累积值 Volume,//体积模式,体积到达后停止累积 }; /*地址0x0001处的启停指令*/ typedef enum MeasureCommand { StartMeasure=1, StopMeasure=2, }; typedef struct FluxCommand { uint16_t addr; uint32_t PLC_ADDR; }; #ifdef __cplusplus } /*extern "C"*/ #endif #endif