2024-05-31
This commit is contained in:
1 parent
f8591b8b99
commit
4a963bd78c
27 files changed
+2956
-229
No files matched your search
+124
-84
@@ -3,94 +3,116 @@
|
||||
|
||||
|
||||
|
||||
const StrIndex_t cDownDataType[] =
|
||||
|
||||
/******************************************
|
||||
* 版本信息
|
||||
******************************************/
|
||||
volatile const char _makeData[] = __DATE__; //12字节,编译日期
|
||||
volatile const char _makeTime[] = __TIME__; //9字节
|
||||
volatile const char cBootv[] = "Ver3.0.0"; //获取时添加上面两个时间信息,最大长度64字节
|
||||
char _versionTemp[64];
|
||||
|
||||
|
||||
|
||||
const StrIndex_t cDownDataType[] =
|
||||
{
|
||||
{"run",DownRun} ,
|
||||
{"stop",DownStop} ,
|
||||
{"open",DownOpen} ,
|
||||
{"close",DownClose} ,
|
||||
{"reg_ans",DownRegistAns} ,
|
||||
{"heart_ans",DownHeartAns},
|
||||
{"update",DownUpdate},
|
||||
{"reboot",DownReboot},
|
||||
{"config",DownConfig},
|
||||
{"read",DownRead}
|
||||
{"run", DownRun},
|
||||
{"stop", DownStop},
|
||||
{"open", DownOpen},
|
||||
{"close", DownClose},
|
||||
{"reg_ans", DownRegistAns},
|
||||
{"heart_ans", DownHeartAns},
|
||||
{"update", DownUpdate},
|
||||
{"reboot", DownReboot},
|
||||
{"config", DownConfig},
|
||||
{"read", DownRead},
|
||||
{"fact", DownFact}
|
||||
};
|
||||
|
||||
|
||||
|
||||
const StrIndex_t cSiteType[] =
|
||||
const StrIndex_t cSiteType[] =
|
||||
{
|
||||
{"sluice",SiteSluice} ,
|
||||
{"flow",SiteFlow} ,
|
||||
{"press",SiteSee} ,
|
||||
{"auto",SiteColl} ,
|
||||
{"trans",SiteServer} ,
|
||||
{"level",SiteLevel}
|
||||
{"sluice", SiteSluice},
|
||||
{"flow", SiteFlow},
|
||||
{"press", SiteSee},
|
||||
{"auto", SiteColl}, // 自动化采集站
|
||||
{"trans", SiteServer},
|
||||
{"level", SiteLevel},
|
||||
{"skew", SiteSkew} //测斜仪
|
||||
};
|
||||
|
||||
|
||||
const StrIndex_t cMotorType[] =
|
||||
const StrIndex_t cMotorType[] =
|
||||
{
|
||||
{"mg1000",MT_MG_1000} ,
|
||||
{"qh100",MT_QH_V100} ,
|
||||
{"qh200",MT_QH_V200} ,
|
||||
{"zs100",MT_ZS_V100} ,
|
||||
{"dy100",MT_DY_V100} ,
|
||||
{"kg100",MT_KG_V100}
|
||||
{"mg1000", MT_MG_1000},
|
||||
{"qh100", MT_QH_V100},
|
||||
{"qh200", MT_QH_V200},
|
||||
{"zs100", MT_ZS_V100},
|
||||
{"jz200", MT_JZ_V200}, // 金志 4-20 ma
|
||||
{"dy100", MT_DY_V100}, // 大禹锥型阀
|
||||
{"kg100", MT_KG_V100}, // 开关量模块
|
||||
{"kr100", MT_KR_V100}, // 闸位计
|
||||
{"asca3", MT_ASC_A3}, // A3 驱动器
|
||||
{"ascws", MT_ASC_WS}, // A3 驱动器
|
||||
};
|
||||
|
||||
const StrIndex_t c4851Type[] =
|
||||
const StrIndex_t c4851Type[] =
|
||||
{
|
||||
{"mg1000",ST_MG_1000} ,
|
||||
{"qh100",ST_QH_V100} ,
|
||||
{"qh200",ST_QH_V200} ,
|
||||
{"dy100",ST_DY_V100} ,
|
||||
{"kg100",ST_KG_V100} ,
|
||||
{"mg1000", ST_MG_1000},
|
||||
{"qh100", ST_QH_V100},
|
||||
{"qh200", ST_QH_V200},
|
||||
{"zs100", ST_ZS_V100}, // 中盛4-20ma
|
||||
{"dy100", ST_DY_V100},
|
||||
{"kg100", ST_KG_V100},
|
||||
{"at100", ST_AT_V100},
|
||||
{"kr100", ST_KR_V100},
|
||||
};
|
||||
|
||||
const StrIndex_t cU485Type[] =
|
||||
const StrIndex_t cU485Type[] =
|
||||
{
|
||||
{"modbus",0}
|
||||
{"modbus", 0}
|
||||
};
|
||||
|
||||
const StrIndex_t c4852Type[] =
|
||||
// 485 2 通道
|
||||
const StrIndex_t c4852Type[] =
|
||||
{
|
||||
{"rds600",ST_RDS_600} ,
|
||||
{"tds300",ST_TDS_300} ,
|
||||
{"ht100",ST_HT_V100} ,
|
||||
{"zkjszk",ST_ZK_JSZK},
|
||||
{"djx100",ST_DJX_100},
|
||||
{"rds300",ST_RDS_300}
|
||||
{"rds600", ST_RDS_600},
|
||||
{"tds300", ST_TDS_300},
|
||||
{"ht100", ST_HT_V100},
|
||||
{"zkjszk", ST_ZK_JSZK},
|
||||
{"djx100", ST_DJX_100},
|
||||
{"rds300", ST_RDS_300},
|
||||
{"mi600", ST_MI_600} // 测斜仪
|
||||
};
|
||||
|
||||
|
||||
const ParShallInfo_t ParShallTale[] =
|
||||
const ParShallInfo_t ParShallTale[] =
|
||||
{
|
||||
{.w = 0,.c = 0,.m = 0},
|
||||
{.w = 0.152, .c = 0.381, .m = 1.58 ,.minLeve = 0.03, .maxLeve = 0.45, .minFlow = 1.5/1000, .maxFlow = 100/1000},
|
||||
{.w = 0.25, .c = 0.561, .m = 1.513 ,.minLeve = 0.03, .maxLeve = 0.60, .minFlow = 3.0/1000, .maxFlow = 250/1000},
|
||||
{.w = 0.30, .c = 0.679, .m = 1.521 ,.minLeve = 0.03, .maxLeve = 0.75, .minFlow = 3.5/1000, .maxFlow = 400/1000},
|
||||
{.w = 0.45, .c = 1.038, .m = 1.537 ,.minLeve = 0.03, .maxLeve = 0.75, .minFlow = 4.5/1000, .maxFlow = 630/1000},
|
||||
{.w = 0.60, .c = 1.403, .m = 1.548 ,.minLeve = 0.05, .maxLeve = 0.75, .minFlow = 12.5/1000, .maxFlow = 850/1000},
|
||||
{.w = 0.75, .c = 1.772, .m = 1.557 ,.minLeve = 0.06, .maxLeve = 0.75, .minFlow = 25.0/1000, .maxFlow = 1100/1000},
|
||||
{.w = 0.90, .c = 2.147, .m = 1.565 ,.minLeve = 0.06, .maxLeve = 0.75, .minFlow = 30.0/1000, .maxFlow = 1250/1000},
|
||||
{.w = 1.00, .c = 2.397, .m = 1.569 ,.minLeve = 0.06, .maxLeve = 0.80, .minFlow = 30.0/1000, .maxFlow = 1500/1000},
|
||||
{.w = 1.20, .c = 2.904, .m = 1.577 ,.minLeve = 0.06, .maxLeve = 0.80, .minFlow = 35.0/1000, .maxFlow = 2000/1000},
|
||||
{.w = 1.50, .c = 3.668, .m = 1.586 ,.minLeve = 0.06, .maxLeve = 0.80, .minFlow = 45.0/1000, .maxFlow = 2500/1000},
|
||||
{.w = 1.80, .c = 4.440, .m = 1.593 ,.minLeve = 0.08, .maxLeve = 0.80, .minFlow = 80.0/1000, .maxFlow = 3000/1000},
|
||||
{.w = 2.10, .c = 5.222, .m = 1.599 ,.minLeve = 0.08, .maxLeve = 0.80, .minFlow = 95.0/1000, .maxFlow = 3600/1000},
|
||||
{.w = 2.40, .c = 6.004, .m = 1.605 ,.minLeve = 0.08, .maxLeve = 0.80, .minFlow = 100.0/1000, .maxFlow = 4000/1000},
|
||||
|
||||
{.w = 3.05, .c = 7.463, .m = 1.6 ,.minLeve = 0.09, .maxLeve = 1.07, .minFlow = 0.16, .maxFlow = 8.28},
|
||||
{.w = 3.66, .c = 8.859, .m = 1.6 ,.minLeve = 0.09, .maxLeve = 1.37, .minFlow = 0.19, .maxFlow = 14.68},
|
||||
{.w = 4.57, .c = 10.96, .m = 1.6 ,.minLeve = 0.09, .maxLeve = 1.67, .minFlow = 0.23, .maxFlow = 25.04},
|
||||
{.w = 6.10, .c = 14.45, .m = 1.6 ,.minLeve = 0.09, .maxLeve = 1.83, .minFlow = 0.31, .maxFlow = 37.97},
|
||||
|
||||
{.w = 7.62, .c = 17.94, .m = 1.6 ,.minLeve = 0.09, .maxLeve = 1.83, .minFlow = 0.38, .maxFlow = 47.16},
|
||||
{.w = 9.14, .c = 21.44, .m = 1.6 ,.minLeve = 0.09, .maxLeve = 1.83, .minFlow = 0.46, .maxFlow = 56.33},
|
||||
{.w = 12.19, .c = 28.43, .m = 1.6 ,.minLeve = 0.09, .maxLeve = 1.83, .minFlow = 0.60, .maxFlow = 74.70},
|
||||
{.w = 15.24, .c = 35.41, .m = 1.6 ,.minLeve = 0.09, .maxLeve = 1.83, .minFlow = 0.75, .maxFlow = 93.04},
|
||||
{.w = 0, .c = 0, .m = 0},
|
||||
{.w = 0.152, .c = 0.381, .m = 1.58 , .minLeve = 0.03, .maxLeve = 0.45, .minFlow = 1.5 / 1000, .maxFlow = 100 / 1000},
|
||||
{.w = 0.25, .c = 0.561, .m = 1.513 , .minLeve = 0.03, .maxLeve = 0.60, .minFlow = 3.0 / 1000, .maxFlow = 250 / 1000},
|
||||
{.w = 0.30, .c = 0.679, .m = 1.521 , .minLeve = 0.03, .maxLeve = 0.75, .minFlow = 3.5 / 1000, .maxFlow = 400 / 1000},
|
||||
{.w = 0.45, .c = 1.038, .m = 1.537 , .minLeve = 0.03, .maxLeve = 0.75, .minFlow = 4.5 / 1000, .maxFlow = 630 / 1000},
|
||||
{.w = 0.60, .c = 1.403, .m = 1.548 , .minLeve = 0.05, .maxLeve = 0.75, .minFlow = 12.5 / 1000, .maxFlow = 850 / 1000},
|
||||
{.w = 0.75, .c = 1.772, .m = 1.557 , .minLeve = 0.06, .maxLeve = 0.75, .minFlow = 25.0 / 1000, .maxFlow = 1100 / 1000},
|
||||
{.w = 0.90, .c = 2.147, .m = 1.565 , .minLeve = 0.06, .maxLeve = 0.75, .minFlow = 30.0 / 1000, .maxFlow = 1250 / 1000},
|
||||
{.w = 1.00, .c = 2.397, .m = 1.569 , .minLeve = 0.06, .maxLeve = 0.80, .minFlow = 30.0 / 1000, .maxFlow = 1500 / 1000},
|
||||
{.w = 1.20, .c = 2.904, .m = 1.577 , .minLeve = 0.06, .maxLeve = 0.80, .minFlow = 35.0 / 1000, .maxFlow = 2000 / 1000},
|
||||
{.w = 1.50, .c = 3.668, .m = 1.586 , .minLeve = 0.06, .maxLeve = 0.80, .minFlow = 45.0 / 1000, .maxFlow = 2500 / 1000},
|
||||
{.w = 1.80, .c = 4.440, .m = 1.593 , .minLeve = 0.08, .maxLeve = 0.80, .minFlow = 80.0 / 1000, .maxFlow = 3000 / 1000},
|
||||
{.w = 2.10, .c = 5.222, .m = 1.599 , .minLeve = 0.08, .maxLeve = 0.80, .minFlow = 95.0 / 1000, .maxFlow = 3600 / 1000},
|
||||
{.w = 2.40, .c = 6.004, .m = 1.605 , .minLeve = 0.08, .maxLeve = 0.80, .minFlow = 100.0 / 1000, .maxFlow = 4000 / 1000},
|
||||
|
||||
{.w = 3.05, .c = 7.463, .m = 1.6 , .minLeve = 0.09, .maxLeve = 1.07, .minFlow = 0.16, .maxFlow = 8.28},
|
||||
{.w = 3.66, .c = 8.859, .m = 1.6 , .minLeve = 0.09, .maxLeve = 1.37, .minFlow = 0.19, .maxFlow = 14.68},
|
||||
{.w = 4.57, .c = 10.96, .m = 1.6 , .minLeve = 0.09, .maxLeve = 1.67, .minFlow = 0.23, .maxFlow = 25.04},
|
||||
{.w = 6.10, .c = 14.45, .m = 1.6 , .minLeve = 0.09, .maxLeve = 1.83, .minFlow = 0.31, .maxFlow = 37.97},
|
||||
|
||||
{.w = 7.62, .c = 17.94, .m = 1.6 , .minLeve = 0.09, .maxLeve = 1.83, .minFlow = 0.38, .maxFlow = 47.16},
|
||||
{.w = 9.14, .c = 21.44, .m = 1.6 , .minLeve = 0.09, .maxLeve = 1.83, .minFlow = 0.46, .maxFlow = 56.33},
|
||||
{.w = 12.19, .c = 28.43, .m = 1.6 , .minLeve = 0.09, .maxLeve = 1.83, .minFlow = 0.60, .maxFlow = 74.70},
|
||||
{.w = 15.24, .c = 35.41, .m = 1.6 , .minLeve = 0.09, .maxLeve = 1.83, .minFlow = 0.75, .maxFlow = 93.04},
|
||||
|
||||
} ;
|
||||
|
||||
@@ -98,7 +120,14 @@ const ParShallInfo_t ParShallTale[] =
|
||||
|
||||
SluiceData_t SluiceData[SLUICE_COUTN];
|
||||
WaterData_t WaterData[WATER_COUTN];
|
||||
|
||||
InclinometerData_t IncData[6]; // 测斜仪数据
|
||||
|
||||
SysData_t SysData;
|
||||
SOFTRTC_t g_SoftRtc =
|
||||
{
|
||||
23, 10, 1, 0, 0, 0
|
||||
};
|
||||
|
||||
uint32_t g_ifconfig = 0;
|
||||
uint32_t g_ifupdate = 0;
|
||||
@@ -106,9 +135,9 @@ uint32_t g_ifupdate = 0;
|
||||
|
||||
int cMotorGetType (char * str)
|
||||
{
|
||||
for (int i =0;i < sizeof(cMotorType)/sizeof(StrIndex_t);i++)
|
||||
for (int i = 0; i < sizeof (cMotorType) / sizeof (StrIndex_t); i++)
|
||||
{
|
||||
if (rt_memcmp(str,cMotorType[i].str,rt_strlen(str)) == 0)
|
||||
if (rt_memcmp (str, cMotorType[i].str, rt_strlen (str)) == 0)
|
||||
{
|
||||
return cMotorType[i].index;
|
||||
}
|
||||
@@ -117,13 +146,13 @@ int cMotorGetType (char * str)
|
||||
}
|
||||
|
||||
|
||||
int c4851GetType(char * str)
|
||||
int c4851GetType (char * str)
|
||||
{
|
||||
rt_kprintf("485 option count:%d\r\n",sizeof(c4851Type)/sizeof(StrIndex_t)) ;
|
||||
for (int i =0;i < sizeof(c4851Type)/sizeof(StrIndex_t);i++)
|
||||
rt_kprintf ("485 option count:%d\r\n", sizeof (c4851Type) / sizeof (StrIndex_t)) ;
|
||||
for (int i = 0; i < sizeof (c4851Type) / sizeof (StrIndex_t); i++)
|
||||
{
|
||||
rt_kprintf("%s,%s\r\n",str,c4851Type[i].str) ;
|
||||
if (rt_memcmp(str,c4851Type[i].str,rt_strlen(str)) == 0)
|
||||
rt_kprintf ("%s,%s\r\n", str, c4851Type[i].str) ;
|
||||
if (rt_memcmp (str, c4851Type[i].str, rt_strlen (str)) == 0)
|
||||
{
|
||||
return c4851Type[i].index;
|
||||
}
|
||||
@@ -131,11 +160,11 @@ int c4851GetType(char * str)
|
||||
return -1;
|
||||
}
|
||||
|
||||
int c4852GetType(char * str)
|
||||
int c4852GetType (char * str)
|
||||
{
|
||||
for (int i =0;i < sizeof(c4852Type)/sizeof(StrIndex_t);i++)
|
||||
for (int i = 0; i < sizeof (c4852Type) / sizeof (StrIndex_t); i++)
|
||||
{
|
||||
if (rt_memcmp(str,c4852Type[i].str,rt_strlen(str)) == 0)
|
||||
if (rt_memcmp (str, c4852Type[i].str, rt_strlen (str)) == 0)
|
||||
{
|
||||
return c4852Type[i].index;
|
||||
}
|
||||
@@ -144,11 +173,11 @@ int c4852GetType(char * str)
|
||||
}
|
||||
|
||||
|
||||
int cU485GetType(char *str)
|
||||
int cU485GetType (char *str)
|
||||
{
|
||||
for (int i =0;i < sizeof(cU485Type)/sizeof(StrIndex_t);i++)
|
||||
for (int i = 0; i < sizeof (cU485Type) / sizeof (StrIndex_t); i++)
|
||||
{
|
||||
if (rt_memcmp(str,cU485Type[i].str,rt_strlen(str)) == 0)
|
||||
if (rt_memcmp (str, cU485Type[i].str, rt_strlen (str)) == 0)
|
||||
{
|
||||
return cU485Type[i].index;
|
||||
}
|
||||
@@ -157,11 +186,11 @@ int cU485GetType(char *str)
|
||||
}
|
||||
|
||||
|
||||
int cDownType2Index(char * str)
|
||||
int cDownType2Index (char * str)
|
||||
{
|
||||
for (int i =0;i < sizeof(cDownDataType)/sizeof(StrIndex_t);i++)
|
||||
for (int i = 0; i < sizeof (cDownDataType) / sizeof (StrIndex_t); i++)
|
||||
{
|
||||
if (rt_memcmp(str,cDownDataType[i].str,rt_strlen(str)) == 0)
|
||||
if (rt_memcmp (str, cDownDataType[i].str, rt_strlen (str)) == 0)
|
||||
{
|
||||
return cDownDataType[i].index;
|
||||
}
|
||||
@@ -171,11 +200,11 @@ int cDownType2Index(char * str)
|
||||
|
||||
|
||||
|
||||
int cSiteType2Index(char * str)
|
||||
int cSiteType2Index (char * str)
|
||||
{
|
||||
for (int i =0;i < sizeof(cSiteType)/sizeof(StrIndex_t);i++)
|
||||
for (int i = 0; i < sizeof (cSiteType) / sizeof (StrIndex_t); i++)
|
||||
{
|
||||
if (rt_memcmp(str,cSiteType[i].str,rt_strlen(str)) == 0)
|
||||
if (rt_memcmp (str, cSiteType[i].str, rt_strlen (str)) == 0)
|
||||
{
|
||||
return cSiteType[i].index;
|
||||
}
|
||||
@@ -186,6 +215,17 @@ int cSiteType2Index(char * str)
|
||||
|
||||
|
||||
|
||||
/**********************************************
|
||||
获取boot版本信息
|
||||
**********************************************/
|
||||
void *GetVersion (void)
|
||||
{
|
||||
int i = rt_sprintf (_versionTemp, "%s-%s %s", cBootv, _makeData, _makeTime);
|
||||
_versionTemp[i] = 0;
|
||||
return (void*) _versionTemp;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+59
-23
@@ -3,13 +3,20 @@
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
|
||||
#define SLUICE_COUTN 1// 当前处理几口闸
|
||||
#define WATER_COUTN 6// 当前接入n个流量计
|
||||
|
||||
#define SUBTOPIC_COUNT 1 // 订阅topic 数量
|
||||
#define SLUCIE_EXEC_COUNT 20// 闸门异常时间
|
||||
|
||||
|
||||
#define VERSION "V2.0.1"
|
||||
#define VERSION "KRH-1.0.16"
|
||||
// #define AI_AOVERSION "KRH-1.0.16"
|
||||
//AIAO
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +27,7 @@ typedef struct StrIndex_t
|
||||
{
|
||||
char str[10];
|
||||
int index;
|
||||
}StrIndex_t;
|
||||
} StrIndex_t;
|
||||
|
||||
|
||||
// 巴歇尔槽流量计
|
||||
@@ -33,7 +40,7 @@ typedef struct ParShallInfo_t
|
||||
double maxLeve;
|
||||
double minFlow;
|
||||
double maxFlow;
|
||||
}ParShallInfo_t;
|
||||
} ParShallInfo_t;
|
||||
|
||||
|
||||
|
||||
@@ -41,13 +48,13 @@ typedef struct LeveInfo_t
|
||||
{
|
||||
uint16_t Y[100]; // 水位
|
||||
uint16_t Key[100]; // 流量
|
||||
}LeveInfo_t;
|
||||
} LeveInfo_t;
|
||||
// 水位流量关系表数据
|
||||
typedef struct WaterLeveInfo_t
|
||||
{
|
||||
uint16_t X[100]; // 单位 mm
|
||||
LeveInfo_t Key[100];
|
||||
}WaterLeveInfo_t;
|
||||
} WaterLeveInfo_t;
|
||||
|
||||
|
||||
|
||||
@@ -78,18 +85,37 @@ typedef struct SysData_t
|
||||
int fileSize; // 文件大小
|
||||
} SysData_t;
|
||||
|
||||
typedef struct SOFTRTC_t
|
||||
{
|
||||
uint8_t year;
|
||||
uint8_t month;
|
||||
uint8_t day;
|
||||
uint8_t hour;
|
||||
uint8_t minutes;
|
||||
uint8_t second;
|
||||
} SOFTRTC_t;
|
||||
|
||||
|
||||
|
||||
|
||||
// 水量参数
|
||||
typedef struct InclinometerData_t
|
||||
{
|
||||
uint8_t dir; // 方向
|
||||
uint32_t data;// 数据
|
||||
} InclinometerData_t;
|
||||
|
||||
|
||||
// 测斜数据
|
||||
typedef struct WaterData_t
|
||||
{
|
||||
int64_t ttWater; // 累计流量 单位 m3
|
||||
int32_t thisFlow; // 瞬时流量 单位 m3
|
||||
int32_t thisLevel; // 水位
|
||||
int32_t thisSpeed; // 流速
|
||||
int64_t ttWater; // 累计流量 单位 m3
|
||||
int32_t thisFlow; // 瞬时流量 单位 m3
|
||||
int32_t thisLevel; // 水位
|
||||
int32_t thisSpeed; // 流速
|
||||
int32_t thisPress; // 压力
|
||||
int32_t thisTemp; // 温度
|
||||
int retry ; // 重试次数
|
||||
} WaterData_t;
|
||||
|
||||
|
||||
@@ -98,7 +124,7 @@ typedef enum Ctrl_Mode_t
|
||||
{
|
||||
CTRL_FOPEN = 0,
|
||||
CTRL_ZOPEN = 1
|
||||
}Ctrl_Mode_t;
|
||||
} Ctrl_Mode_t;
|
||||
|
||||
|
||||
typedef enum MotorType_t
|
||||
@@ -106,11 +132,13 @@ typedef enum MotorType_t
|
||||
MT_MG_1000, // 米格1000
|
||||
MT_QH_V100, // 强华 1.0 版本
|
||||
MT_QH_V200, // 强华 2.0 版本
|
||||
MT_ZS_V100, // 中盛 4-20 ma
|
||||
MT_ZS_V100, // 中盛 4-20 ma
|
||||
MT_JZ_V200, // 金志 4-20 ma
|
||||
MT_DY_V100, // 大禹锥型阀
|
||||
MT_KG_V100, // 开关量模块
|
||||
MT_KR_V100, // 徐州正天闸位计
|
||||
MT_ASC_A3, // A3驱动器
|
||||
MT_ASC_WS, // 金昌无刷电机
|
||||
} MotorType_t;
|
||||
|
||||
typedef enum S4851Type_t
|
||||
@@ -118,6 +146,7 @@ typedef enum S4851Type_t
|
||||
ST_MG_1000, // 米格1000
|
||||
ST_QH_V100, // 强华 1.0 版本
|
||||
ST_QH_V200, // 强华 2.0 版本
|
||||
ST_ZS_V100, // 中盛4-20ma
|
||||
ST_AT_V100, // 奥图编码器
|
||||
ST_DY_V100, // 大禹锥形阀
|
||||
ST_KG_V100, // 开关量模块
|
||||
@@ -129,9 +158,10 @@ typedef enum S4852Type_t
|
||||
ST_RDS_600, // rds600 雷达流速一体机
|
||||
ST_TDS_300, // tds300 超声波流量计
|
||||
ST_HT_V100, // 华天液位计
|
||||
ST_ZK_JSZK, // 精水中科多普勒
|
||||
ST_ZK_JSZK, // 精水中科多普勒
|
||||
ST_DJX_100, // 丁家峡闸门 读取开度
|
||||
ST_RDS_300, // 雷达流量计
|
||||
ST_MI_600, // 鹦鸽嘴测斜仪
|
||||
} S4852Type_t;
|
||||
|
||||
|
||||
@@ -140,7 +170,7 @@ typedef enum SOFTFLOWType_t
|
||||
NONE,
|
||||
WATER,
|
||||
PARSHALL//
|
||||
}SOFTFLOWType_t;
|
||||
} SOFTFLOWType_t;
|
||||
|
||||
|
||||
|
||||
@@ -151,8 +181,9 @@ typedef enum SiteType_t
|
||||
SiteSee, // 渗流渗压站
|
||||
SiteColl, // 采集站
|
||||
SiteServer, // 串口服务器
|
||||
SiteLevel // 水位站
|
||||
}SiteType_t;
|
||||
SiteLevel, // 水位站
|
||||
SiteSkew // 测斜仪
|
||||
} SiteType_t;
|
||||
|
||||
|
||||
typedef enum DownDataType_t
|
||||
@@ -167,7 +198,8 @@ typedef enum DownDataType_t
|
||||
DownReboot = 7, // 重启
|
||||
DownConfig = 8, // 修改参数
|
||||
DownRead = 9, // 读取参数
|
||||
}DownDataType_t;
|
||||
DownFact = 10, // 读取参数
|
||||
} DownDataType_t;
|
||||
|
||||
|
||||
|
||||
@@ -178,36 +210,40 @@ typedef struct TypeIndexMail_t
|
||||
{
|
||||
uint16_t Type;
|
||||
uint16_t index;
|
||||
}TypeIndexMail_t;
|
||||
} TypeIndexMail_t;
|
||||
|
||||
|
||||
|
||||
|
||||
extern SluiceData_t SluiceData[SLUICE_COUTN];
|
||||
extern WaterData_t WaterData[WATER_COUTN];
|
||||
extern InclinometerData_t IncData[6];
|
||||
extern SysData_t SysData;
|
||||
extern const WaterLeveInfo_t LeveInfo;
|
||||
extern const ParShallInfo_t ParShallTale[];
|
||||
extern SOFTRTC_t g_SoftRtc;
|
||||
|
||||
|
||||
int cMotorGetType (char * str);
|
||||
|
||||
|
||||
int c4851GetType(char * str);
|
||||
int c4851GetType (char * str);
|
||||
|
||||
int c4852GetType(char * str);
|
||||
int c4852GetType (char * str);
|
||||
|
||||
int cU485GetType(char *str);
|
||||
int cU485GetType (char *str);
|
||||
|
||||
// 读取控制模式
|
||||
int cCtrlGetType(char * str);
|
||||
int cCtrlGetType (char * str);
|
||||
|
||||
int cDownType2Index(char * str);
|
||||
int cDownType2Index (char * str);
|
||||
|
||||
|
||||
int cSiteType2Index(char * str);
|
||||
int cSiteType2Index (char * str);
|
||||
|
||||
|
||||
void *GetVersion (void);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
+9
-8
@@ -1,39 +1,40 @@
|
||||
#include "main.h"
|
||||
#include "di-board.h"
|
||||
|
||||
|
||||
int DiReadChann (int chann)
|
||||
DIState_t MX_Din_Pull (int chann)
|
||||
{
|
||||
int ret = -1;
|
||||
DIState_t ret;
|
||||
switch (chann)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
ret = HAL_GPIO_ReadPin (DI1_GPIO_Port, DI1_Pin);
|
||||
ret = (DIState_t) HAL_GPIO_ReadPin (DI1_GPIO_Port, DI1_Pin);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
ret = HAL_GPIO_ReadPin (DI2_GPIO_Port, DI2_Pin);
|
||||
ret = (DIState_t) HAL_GPIO_ReadPin (DI2_GPIO_Port, DI2_Pin);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
ret = HAL_GPIO_ReadPin (DI3_GPIO_Port, DI4_Pin);
|
||||
ret = (DIState_t) HAL_GPIO_ReadPin (DI3_GPIO_Port, DI3_Pin);
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
ret = HAL_GPIO_ReadPin (DI4_GPIO_Port, DI4_Pin);
|
||||
ret = (DIState_t) HAL_GPIO_ReadPin (DI4_GPIO_Port, DI4_Pin);
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
ret = HAL_GPIO_ReadPin (DI5_GPIO_Port, DI5_Pin);
|
||||
ret = (DIState_t) HAL_GPIO_ReadPin (DI5_GPIO_Port, DI5_Pin);
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
ret = HAL_GPIO_ReadPin (DI6_GPIO_Port, DI6_Pin);
|
||||
ret = (DIState_t) HAL_GPIO_ReadPin (DI6_GPIO_Port, DI6_Pin);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+7
-1
@@ -1,8 +1,14 @@
|
||||
#ifndef _DI_BOARD_H
|
||||
#define _DI_BOARD_H
|
||||
|
||||
typedef enum DIState_t
|
||||
{
|
||||
DI_HIGH = 1,
|
||||
DI_LOW = 0
|
||||
} DIState_t;
|
||||
|
||||
void DiInit (void);
|
||||
int DiReadChann (int chann);
|
||||
DIState_t MX_Din_Pull (int chann);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@
|
||||
|
||||
|
||||
|
||||
void MX_Dout_Push(int index,int pwm)
|
||||
void MX_Dout_Push (int index, int pwm)
|
||||
{
|
||||
MX_TIM_SetDuty(index,pwm);
|
||||
MX_TIM_SetDuty (index, pwm);
|
||||
}
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
#ifndef _DO_BOARD_HH
|
||||
#define _DO_BOARD_HH
|
||||
|
||||
void MX_Dout_Push(int index, int pwm);
|
||||
void MX_Dout_Push (int index, int pwm);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
+29
-1
@@ -165,7 +165,7 @@ static CommRet_T cat1_sendcmd_and_responce (int time, char * tx, int size, char
|
||||
{
|
||||
if (RT_EOK == rt_event_recv (gUartEvents, EVENT_UART_GSM_RX, RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, 0, RT_NULL))
|
||||
{
|
||||
// rt_kprintf ("[%.*s]", g_GSMDrv.rx_size, g_GSMDrv.rx_buffer) ;
|
||||
//rt_kprintf ("[%.*s]", g_GSMDrv.rx_size, g_GSMDrv.rx_buffer) ;
|
||||
if (NULL != rt_strstr ( (char *) g_GSMDrv.rx_buffer, ack))
|
||||
{
|
||||
if (call != NULL)
|
||||
@@ -278,6 +278,26 @@ CAT1RST:
|
||||
rt_kprintf ("NET:+CME:ERROR QIRD\r\n");
|
||||
goto CAT1RST;
|
||||
}
|
||||
// // 通过通道2上报数据
|
||||
// if (RT_EOK == rt_event_recv (gTrigEvents, EVENT_TRIG_NETMODE_TX2, RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL)) // 需要发送数据
|
||||
// {
|
||||
// if (g_cat1Drv.txbuff != NULL)
|
||||
// {
|
||||
// rt_sprintf (at_cmd, "AT+QISEND=0,%d\r\n", g_cat1Drv.tx_size);
|
||||
// rt_thread_mdelay (10);
|
||||
// if (cat1_sendcmd_and_responce (1000, at_cmd, strlen (at_cmd), ">", NULL) != RetSucc)
|
||||
// {
|
||||
// rt_kprintf ("NET:+CME:ERROR QISEND\r\n");
|
||||
// goto CAT1RST;
|
||||
// }
|
||||
// if (cat1_sendcmd_and_responce (3000, g_cat1Drv.txbuff, g_cat1Drv.tx_size, "SEND OK", NULL) != RetSucc)
|
||||
// {
|
||||
// rt_kprintf ("NET:+CME:ERROR QPUSH\r\n");
|
||||
// goto CAT1RST;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
rt_thread_mdelay (3000);
|
||||
}
|
||||
@@ -292,6 +312,14 @@ void cat1_service_tx (char * buff, int size)
|
||||
rt_event_send (gTrigEvents, EVENT_TRIG_NETMODE_TX1) ;
|
||||
}
|
||||
|
||||
// 通过网络通道2发送数据
|
||||
void cat1_service2_tx (char * buff, int size)
|
||||
{
|
||||
rt_memcpy (g_cat1Drv.txbuff, buff, size);
|
||||
g_cat1Drv.tx_size = size;
|
||||
rt_event_send (gTrigEvents, EVENT_TRIG_NETMODE_TX2) ;
|
||||
}
|
||||
|
||||
|
||||
void CAT1ThreadStart (void)
|
||||
{
|
||||
|
||||
@@ -26,15 +26,15 @@ int Json5MinFlowDataPacket (uint8_t * buffer)
|
||||
cJSON_AddItemToObject (root, "site_type", cJSON_CreateString (p)); // 表示流量计
|
||||
cJSON_AddItemToObject (root, "pver", cJSON_CreateString (PROTO_VER)); // 表示流量计
|
||||
cJSON_AddItemToObject (root, "iccid", cJSON_CreateString (SysData.iccid)); // 表示流量计
|
||||
cJSON_AddItemToObject (root, "ver", cJSON_CreateString (VERSION)); // 表示流量计
|
||||
cJSON_AddItemToObject (root, "ver", cJSON_CreateString (GetVersion())); // 表示流量计
|
||||
cJSON_AddItemToObject (root, "vol", cJSON_CreateNumber (12.3)); // 表示电池电压
|
||||
cJSON_AddItemToObject (root, "temp", cJSON_CreateNumber (32.5)); // 表示流量计
|
||||
p = ef_get_env ("net_drv");
|
||||
cJSON_AddItemToObject (root, "netdrv", cJSON_CreateString (p)); // 表示流量计
|
||||
p = ef_get_env ("iap_app_filename");
|
||||
//uint32_t max_open = atoi (p);
|
||||
cJSON_AddItemToObject (root, "filename", cJSON_CreateString (p)); // 表示电池电压
|
||||
cJSON_AddItemToObject (root, "chancnt", cJSON_CreateNumber (1)); // 表示电池电压
|
||||
p = ef_get_env ("chancnt");
|
||||
cJSON_AddItemToObject (root, "chancnt", cJSON_CreateString (p)); // 表示电池电压
|
||||
//cJSON_AddItemToObject (root, "chancnt", cJSON_CreateNumber (1)); // 表示电池电压
|
||||
// 瞬时流速
|
||||
for (int i = 0; i < 6; i++)
|
||||
@@ -63,7 +63,7 @@ int Json5MinFlowDataPacket (uint8_t * buffer)
|
||||
// 当前水位
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
dbl[i] = WaterData[i].thisLevel;
|
||||
dbl[i] = (double)WaterData[i].thisLevel/100;
|
||||
}
|
||||
cJSON * ArrNumLeve = cJSON_CreateDoubleArray (dbl, 6);
|
||||
cJSON_AddItemToObject (root, "thisLeve", ArrNumLeve);
|
||||
@@ -82,6 +82,22 @@ int Json5MinFlowDataPacket (uint8_t * buffer)
|
||||
}
|
||||
cJSON * ArrNumTemp = cJSON_CreateDoubleArray (dbl, 6);
|
||||
cJSON_AddItemToObject (root, "thistemp", ArrNumTemp);
|
||||
|
||||
// 当前测斜方向
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
dbl[i] = IncData[i].dir;
|
||||
}
|
||||
cJSON * ArrNumIncDir = cJSON_CreateDoubleArray (dbl, 6);
|
||||
cJSON_AddItemToObject (root, "thisincdir", ArrNumIncDir);
|
||||
|
||||
// 当前测斜数据
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
dbl[i] = IncData[i].data;
|
||||
}
|
||||
cJSON * ArrNumIncData = cJSON_CreateDoubleArray (dbl, 6);
|
||||
cJSON_AddItemToObject (root, "thisincdata", ArrNumIncData);
|
||||
|
||||
//---------------------------------------------以下不准修改
|
||||
result = cJSON_PrintUnformatted (root);
|
||||
|
||||
@@ -7,9 +7,13 @@
|
||||
#include <stdlib.h>
|
||||
#include "data.h"
|
||||
#include "os-app.h"
|
||||
#include "main.h"
|
||||
|
||||
char config_list[16][32] = {NULL};
|
||||
int config_list_size = 0;
|
||||
// 用于远程出厂设置时保留配置
|
||||
char backdevice_id[12] = {0};
|
||||
char backnetdrv[12] = {0};
|
||||
|
||||
|
||||
|
||||
@@ -66,6 +70,7 @@ void JsonUnPacket (int index, char *buff)
|
||||
UpgradeThreadStart();
|
||||
break;
|
||||
case DownReboot :
|
||||
HAL_NVIC_SystemReset();
|
||||
break;
|
||||
case DownConfig: // 设置参数
|
||||
// 读取参数列表
|
||||
@@ -80,6 +85,9 @@ void JsonUnPacket (int index, char *buff)
|
||||
ef_set_env (key, value);
|
||||
}
|
||||
}
|
||||
mail.Type = MAIL_COMM_ACK;
|
||||
mail.index = index + 1; // 0通道用来升级的通道
|
||||
rt_mb_send (gTCommMail, * ( (uint32_t*) &mail));
|
||||
break;
|
||||
case DownRead: // 读取参数
|
||||
list = cJSON_GetObjectItem (root, "list");
|
||||
@@ -94,6 +102,18 @@ void JsonUnPacket (int index, char *buff)
|
||||
rt_mb_send (gTCommMail, * ( (uint32_t*) &mail));
|
||||
// 读取参数列表
|
||||
break;
|
||||
case DownFact:
|
||||
p = ef_get_env("device_id");
|
||||
rt_sprintf(backdevice_id,"%s",p);
|
||||
p = ef_get_env("net_drv") ;
|
||||
rt_sprintf(backnetdrv,"%s",p);
|
||||
ef_env_set_default();
|
||||
ef_set_env("device_id",backdevice_id) ;
|
||||
ef_set_env("net_drv",backnetdrv) ;
|
||||
mail.Type = MAIL_COMM_ACK;
|
||||
mail.index = index + 1; // 0通道用来升级的通道
|
||||
rt_mb_send (gTCommMail, * ( (uint32_t*) &mail));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -172,6 +172,7 @@ int PacketSluiceUp (int k, char * tx_data)
|
||||
tx_data[tx_size++] = 0x01;
|
||||
// // 闸门开度
|
||||
intk.data = SluiceData[k].gopen * 10;
|
||||
rt_kprintf("gopen:%d\r\n");
|
||||
tx_data[tx_size++] = intk.byte[3];
|
||||
tx_data[tx_size++] = intk.byte[2];
|
||||
tx_data[tx_size++] = intk.byte[1];
|
||||
|
||||
+37
-48
@@ -1,54 +1,43 @@
|
||||
#include "relay-board.h"
|
||||
#include "main.h"
|
||||
|
||||
|
||||
|
||||
RelayInfo_t RelayInfo =
|
||||
|
||||
void MX_Relay_Push (RelayIndex_t index, RelayState_t ste)
|
||||
{
|
||||
{GPIOB, GPIO_PIN_8, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_VERY_HIGH, NULL}, //PB5
|
||||
{GPIOB, GPIO_PIN_9, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_VERY_HIGH, NULL}, //PB5
|
||||
};
|
||||
/********************************************
|
||||
函数名称:UartInfoInit
|
||||
输入参数:串口句柄
|
||||
输出参数:NULL
|
||||
功能描述:初始化一个串口
|
||||
********************************************/
|
||||
void RelayInfoInit (void)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct;
|
||||
|
||||
GPIO_InitStruct.Mode = RelayInfo.Relay1.mode;
|
||||
GPIO_InitStruct.Pull = RelayInfo.Relay1.Pull;
|
||||
GPIO_InitStruct.Speed = RelayInfo.Relay1.Speed;
|
||||
|
||||
GPIO_InitStruct.Pin = RelayInfo.Relay1.pin;
|
||||
HAL_GPIO_Init (RelayInfo.Relay1.GPIOx, &GPIO_InitStruct);
|
||||
HAL_GPIO_WritePin (RelayInfo.Relay1.GPIOx, RelayInfo.Relay1.pin, GPIO_PIN_RESET);
|
||||
|
||||
|
||||
GPIO_InitStruct.Mode = RelayInfo.Relay2.mode;
|
||||
GPIO_InitStruct.Pull = RelayInfo.Relay2.Pull;
|
||||
GPIO_InitStruct.Speed = RelayInfo.Relay2.Speed;
|
||||
|
||||
GPIO_InitStruct.Pin = RelayInfo.Relay2.pin;
|
||||
HAL_GPIO_Init (RelayInfo.Relay2.GPIOx, &GPIO_InitStruct);
|
||||
HAL_GPIO_WritePin (RelayInfo.Relay2.GPIOx, RelayInfo.Relay2.pin, GPIO_PIN_RESET);
|
||||
}
|
||||
void RelayOpenDoor (void)
|
||||
{
|
||||
HAL_GPIO_WritePin (RelayInfo.Relay1.GPIOx, RelayInfo.Relay1.pin, GPIO_PIN_SET);
|
||||
}
|
||||
void RelayCloseDoor (void)
|
||||
{
|
||||
HAL_GPIO_WritePin (RelayInfo.Relay1.GPIOx, RelayInfo.Relay1.pin, GPIO_PIN_RESET);
|
||||
}
|
||||
|
||||
|
||||
void RelayOpenK2 (void)
|
||||
{
|
||||
HAL_GPIO_WritePin (RelayInfo.Relay2.GPIOx, RelayInfo.Relay2.pin, GPIO_PIN_SET);
|
||||
}
|
||||
void RelayCloseK2 (void)
|
||||
{
|
||||
HAL_GPIO_WritePin (RelayInfo.Relay2.GPIOx, RelayInfo.Relay2.pin, GPIO_PIN_RESET);
|
||||
if (ste == RELAY_CONN)
|
||||
{
|
||||
switch (index)
|
||||
{
|
||||
case RELAY1:
|
||||
HAL_GPIO_WritePin (RELAY1_GPIO_Port, RELAY1_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case RELAY2:
|
||||
HAL_GPIO_WritePin (RELAY2_GPIO_Port, RELAY2_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case RELAYDoor:
|
||||
HAL_GPIO_WritePin (LOCK_GPIO_Port, LOCK_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (index)
|
||||
{
|
||||
case RELAY1:
|
||||
HAL_GPIO_WritePin (RELAY1_GPIO_Port, RELAY1_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case RELAY2:
|
||||
HAL_GPIO_WritePin (RELAY2_GPIO_Port, RELAY2_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case RELAYDoor:
|
||||
HAL_GPIO_WritePin (LOCK_GPIO_Port, LOCK_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
-16
@@ -1,25 +1,23 @@
|
||||
#ifndef _RELAY_BOARD_H
|
||||
#define _RELAY_BOARD_H
|
||||
#include "stm32l0xx_hal.h"
|
||||
#include "stgpio.h"
|
||||
|
||||
typedef struct RelayInfo_t
|
||||
|
||||
|
||||
|
||||
typedef enum RelayState_t
|
||||
{
|
||||
// GpioInfo_t Tx;
|
||||
// GpioInfo_t Rx;
|
||||
|
||||
GpioInfo_t Relay1; // 用于控制485的收发
|
||||
GpioInfo_t Relay2; // 用于控制485的收发
|
||||
|
||||
} RelayInfo_t;
|
||||
|
||||
void RelayInfoInit (void);
|
||||
void RelayOpenDoor (void);
|
||||
void RelayCloseDoor (void);
|
||||
void RelayOpenK2 (void);
|
||||
void RelayCloseK2 (void);
|
||||
RELAY_CONN = 1,
|
||||
RELAY_DISC = 0
|
||||
} RelayState_t;
|
||||
|
||||
typedef enum RelayIndex_t
|
||||
{
|
||||
RELAY1 = 0,
|
||||
RELAY2 = 1,
|
||||
RELAYDoor = 2
|
||||
} RelayIndex_t;
|
||||
|
||||
void MX_Relay_Push (RelayIndex_t index, RelayState_t ste);
|
||||
#endif
|
||||
|
||||
|
||||
Reference in new issue
Block a user