feat(debug): 新增 up 上传网关状态和 reg 重新注册命令
This commit is contained in:
Submodule Project/GateWay/source/Module/GateWay_Debug updated: 765fe784f2...cc6352a3de
@@ -87,7 +87,7 @@ typedef enum {
|
|||||||
}CatOneNetType_m;
|
}CatOneNetType_m;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
CatOneStatus_m Status;
|
CatOneStatus_m Cat1Status;
|
||||||
CatOneStatus_m NextStatus;
|
CatOneStatus_m NextStatus;
|
||||||
CatOneRetStatus_m ATCmdRet;
|
CatOneRetStatus_m ATCmdRet;
|
||||||
uint32_t CatOne1mSDelayCnt;
|
uint32_t CatOne1mSDelayCnt;
|
||||||
@@ -131,6 +131,8 @@ void CatOneGetLocationInfo(int *Longitude, int *Latitude);
|
|||||||
void CatOneGetIMEIAndSIM(char *Imei, char *Sim);
|
void CatOneGetIMEIAndSIM(char *Imei, char *Sim);
|
||||||
bool CatOneGetStatus(void);
|
bool CatOneGetStatus(void);
|
||||||
bool CatOneEthSendQueue(uint8_t *sData, uint16_t sLen);
|
bool CatOneEthSendQueue(uint8_t *sData, uint16_t sLen);
|
||||||
|
void CatOneTriggerRegister(void);
|
||||||
|
void ETHTriggerRegister(void);
|
||||||
void CatOne_Eth_Thread_Entry(void *parameter);
|
void CatOne_Eth_Thread_Entry(void *parameter);
|
||||||
void EthRxOverhandler(void);
|
void EthRxOverhandler(void);
|
||||||
void CatReadImeiOrSim(char *Imei, char *Sim);
|
void CatReadImeiOrSim(char *Imei, char *Sim);
|
||||||
|
|||||||
@@ -100,10 +100,10 @@ const CatOneATCMD_m CatOneModeSetCmdArray[] = {
|
|||||||
//{
|
//{
|
||||||
// rt_err_t result;
|
// rt_err_t result;
|
||||||
//
|
//
|
||||||
// if(CatOne.Status != CAT_ONE_IDEL && CatOne.Status != CAT_ONE_WAIT_SEND)
|
// if(CatOne.Cat1Status != CAT_ONE_IDEL && CatOne.Cat1Status != CAT_ONE_WAIT_SEND)
|
||||||
// return CAT_ONE_RET_ERR;
|
// return CAT_ONE_RET_ERR;
|
||||||
//
|
//
|
||||||
// //CatOne.Status = CAT_ONE_RESET;
|
// //CatOne.Cat1Status = CAT_ONE_RESET;
|
||||||
// result = rt_mq_send(CatOneRev_MQ, sData, sLen);
|
// result = rt_mq_send(CatOneRev_MQ, sData, sLen);
|
||||||
// if(result != RT_EOK) {
|
// if(result != RT_EOK) {
|
||||||
// CAT1_DBG_LOG("CatOne MQ Send ERR...\r\n");
|
// CAT1_DBG_LOG("CatOne MQ Send ERR...\r\n");
|
||||||
@@ -115,7 +115,7 @@ const CatOneATCMD_m CatOneModeSetCmdArray[] = {
|
|||||||
|
|
||||||
void CatOneStop(void)
|
void CatOneStop(void)
|
||||||
{
|
{
|
||||||
CatOne.Status = CAT_ONE_OFF;
|
CatOne.Cat1Status = CAT_ONE_OFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ETHStop(void)
|
void ETHStop(void)
|
||||||
@@ -149,14 +149,14 @@ void CatOneGetIMEIAndSIM(char *Imei, char *Sim)
|
|||||||
//返回true-busy, false-Idle
|
//返回true-busy, false-Idle
|
||||||
bool CatOneGetStatus(void)
|
bool CatOneGetStatus(void)
|
||||||
{
|
{
|
||||||
if(CatOne.Status == CAT_ONE_IDEL)
|
if(CatOne.Cat1Status == CAT_ONE_IDEL)
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CatOneReset(void)
|
void CatOneReset(void)
|
||||||
{
|
{
|
||||||
CatOne.Status = CAT_ONE_RESET;
|
CatOne.Cat1Status = CAT_ONE_RESET;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CatTimeSync(char *Data)
|
void CatTimeSync(char *Data)
|
||||||
@@ -272,7 +272,7 @@ void CatOneAtCmdAnalyze(char *RxBuff)
|
|||||||
|
|
||||||
case CAT_ONE_LIPOPEN:
|
case CAT_ONE_LIPOPEN:
|
||||||
if(strstr(RxBuff, "OK") != NULL) {
|
if(strstr(RxBuff, "OK") != NULL) {
|
||||||
CatOne.Status = CatOne.NextStatus;
|
CatOne.Cat1Status = CatOne.NextStatus;
|
||||||
CatOne.CatOne1mSDelayCnt = 10 * 1000;
|
CatOne.CatOne1mSDelayCnt = 10 * 1000;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -280,13 +280,13 @@ void CatOneAtCmdAnalyze(char *RxBuff)
|
|||||||
if(strstr(RxBuff, "LIPOPEN: 0,1") != NULL) {
|
if(strstr(RxBuff, "LIPOPEN: 0,1") != NULL) {
|
||||||
CAT1_DBG_LOG("Cat1 successfully to connect to the server.\r\n\r\n");
|
CAT1_DBG_LOG("Cat1 successfully to connect to the server.\r\n\r\n");
|
||||||
CatOne.TcpConnFlag = true;
|
CatOne.TcpConnFlag = true;
|
||||||
CatOne.Status = CatOne.NextStatus;
|
CatOne.Cat1Status = CatOne.NextStatus;
|
||||||
rt_sem_release(CatOneRev_Sem);
|
rt_sem_release(CatOneRev_Sem);
|
||||||
}
|
}
|
||||||
else if(strstr(RxBuff, "LIPOPEN: 0,0") != NULL) {
|
else if(strstr(RxBuff, "LIPOPEN: 0,0") != NULL) {
|
||||||
CAT1_DBG_LOG("Cat1 failed to connect to the server.\r\n\r\n");
|
CAT1_DBG_LOG("Cat1 failed to connect to the server.\r\n\r\n");
|
||||||
CatOne.TcpConnFlag = false;
|
CatOne.TcpConnFlag = false;
|
||||||
CatOne.Status = CAT_ONE_OFF;
|
CatOne.Cat1Status = CAT_ONE_OFF;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -338,7 +338,7 @@ void CatOneAtCmdAnalyze(char *RxBuff)
|
|||||||
if(strstr(p, "+LIPURC: 0,0") != NULL) {
|
if(strstr(p, "+LIPURC: 0,0") != NULL) {
|
||||||
CAT1_DBG_LOG("TCP connection disconnected.\r\n\r\n");
|
CAT1_DBG_LOG("TCP connection disconnected.\r\n\r\n");
|
||||||
CatOne.TcpConnFlag = false;
|
CatOne.TcpConnFlag = false;
|
||||||
CatOne.Status = CAT_ONE_OFF;
|
CatOne.Cat1Status = CAT_ONE_OFF;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -354,7 +354,7 @@ void CatOneAtCmdAnalyze(char *RxBuff)
|
|||||||
else {
|
else {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//CatOne.Status = CAT_ONE_CLOSE_TCP;
|
//CatOne.Cat1Status = CAT_ONE_CLOSE_TCP;
|
||||||
rt_sem_release(CatOneRev_Sem);//接收任务
|
rt_sem_release(CatOneRev_Sem);//接收任务
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -363,7 +363,7 @@ void CatOneAtCmdAnalyze(char *RxBuff)
|
|||||||
|
|
||||||
}
|
}
|
||||||
if(CatOne.ATCmdRet == CAT_ONE_RET_OK) {
|
if(CatOne.ATCmdRet == CAT_ONE_RET_OK) {
|
||||||
CatOne.Status = CatOne.NextStatus;
|
CatOne.Cat1Status = CatOne.NextStatus;
|
||||||
if(CatOne.AtCmd == CAT_ONE_LIPSEND)
|
if(CatOne.AtCmd == CAT_ONE_LIPSEND)
|
||||||
CatOne.CatOne1mSDelayCnt = 5 * 1000;
|
CatOne.CatOne1mSDelayCnt = 5 * 1000;
|
||||||
else
|
else
|
||||||
@@ -396,7 +396,7 @@ void CatOneAtCmdSend(CatOneATCMD_m Cmd, uint32_t Dly, CatOneStatus_m NextStatus)
|
|||||||
EthRevTimeOutCnt = 0;
|
EthRevTimeOutCnt = 0;
|
||||||
EthOrCat1UartSend((uint8_t *)CatOne.CatOneSendBuff, strlen(CatOne.CatOneSendBuff));
|
EthOrCat1UartSend((uint8_t *)CatOne.CatOneSendBuff, strlen(CatOne.CatOneSendBuff));
|
||||||
CatOne.CatOne1mSDelayCnt = Dly;
|
CatOne.CatOne1mSDelayCnt = Dly;
|
||||||
CatOne.Status = CAT_ONE_WAIT_REV;
|
CatOne.Cat1Status = CAT_ONE_WAIT_REV;
|
||||||
CatOne.NextStatus = NextStatus;
|
CatOne.NextStatus = NextStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -440,14 +440,14 @@ void CatOneLoopHandler(void)
|
|||||||
uint16_t ret;
|
uint16_t ret;
|
||||||
static uint8_t Cat1RevErrCnt = 0;
|
static uint8_t Cat1RevErrCnt = 0;
|
||||||
|
|
||||||
switch(CatOne.Status){
|
switch(CatOne.Cat1Status){
|
||||||
case CAT_ONE_IDEL:
|
case CAT_ONE_IDEL:
|
||||||
rt_thread_delay(1);
|
rt_thread_delay(1);
|
||||||
if(CatOne.ResetDelayCnt > 0) {
|
if(CatOne.ResetDelayCnt > 0) {
|
||||||
CatOne.ResetDelayCnt--;
|
CatOne.ResetDelayCnt--;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
CatOne.Status = CAT_ONE_RESET;
|
CatOne.Cat1Status = CAT_ONE_RESET;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -462,9 +462,9 @@ void CatOneLoopHandler(void)
|
|||||||
else { //3次错误,关机
|
else { //3次错误,关机
|
||||||
CAT1_DBG_LOG("Cat1 error, Close!\r\n");
|
CAT1_DBG_LOG("Cat1 error, Close!\r\n");
|
||||||
if(CatOne.AtCmd == CAT_ONE_LIPSEND)
|
if(CatOne.AtCmd == CAT_ONE_LIPSEND)
|
||||||
CatOne.Status = CAT_ONE_CLOSE_TCP;
|
CatOne.Cat1Status = CAT_ONE_CLOSE_TCP;
|
||||||
else
|
else
|
||||||
CatOne.Status = CAT_ONE_OFF;
|
CatOne.Cat1Status = CAT_ONE_OFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -479,7 +479,7 @@ void CatOneLoopHandler(void)
|
|||||||
CatOneAtCmdSend(CatOneModeSetCmdArray[CatOne.AtCmdIdx], 1000, CAT_ONE_INIT);
|
CatOneAtCmdSend(CatOneModeSetCmdArray[CatOne.AtCmdIdx], 1000, CAT_ONE_INIT);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
CatOne.Status = CAT_ONE_TCP_CONN;
|
CatOne.Cat1Status = CAT_ONE_TCP_CONN;
|
||||||
CatOne.CatOne1mSDelayCnt = 0;
|
CatOne.CatOne1mSDelayCnt = 0;
|
||||||
CatOne.AtCmdIdx = 0;
|
CatOne.AtCmdIdx = 0;
|
||||||
CatOne.AtCmd = CAT_ONE_AT_NULL;
|
CatOne.AtCmd = CAT_ONE_AT_NULL;
|
||||||
@@ -493,39 +493,39 @@ void CatOneLoopHandler(void)
|
|||||||
case CAT_ONE_WAIT_CONN:
|
case CAT_ONE_WAIT_CONN:
|
||||||
if(CatOne.TcpConnFlag) {
|
if(CatOne.TcpConnFlag) {
|
||||||
if(CatOne.GateWay->SvrRegFlag == false)
|
if(CatOne.GateWay->SvrRegFlag == false)
|
||||||
CatOne.Status = CAT_ONE_REG_SVR;
|
CatOne.Cat1Status = CAT_ONE_REG_SVR;
|
||||||
else
|
else
|
||||||
CatOne.Status = CAT_ONE_WAIT_SEND;
|
CatOne.Cat1Status = CAT_ONE_WAIT_SEND;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CAT_ONE_REG_SVR: //注册服务器
|
case CAT_ONE_REG_SVR: //注册服务器
|
||||||
ret = GateWayRegister(CatOneEthTxBuff);
|
ret = GateWayRegister(CatOneEthTxBuff);
|
||||||
rt_mq_send(CatOne.GateWay->NetSendData_MQ, CatOneEthTxBuff, ret);
|
rt_mq_send(CatOne.GateWay->NetSendData_MQ, CatOneEthTxBuff, ret);
|
||||||
CatOne.Status = CAT_ONE_WAIT_SEND;
|
CatOne.Cat1Status = CAT_ONE_WAIT_SEND;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CAT_ONE_WAIT_SEND:
|
case CAT_ONE_WAIT_SEND:
|
||||||
result = rt_mq_recv(CatOne.GateWay->NetSendData_MQ, Payload, CAT_ONE_REV_LEN_MAX, 1000);
|
result = rt_mq_recv(CatOne.GateWay->NetSendData_MQ, Payload, CAT_ONE_REV_LEN_MAX, 1000);
|
||||||
if(result == RT_EOK) {
|
if(result == RT_EOK) {
|
||||||
CatOneEthTxLen = NetCommOrgData(CatOne.GateWay, Payload, CatOneEthTxBuff);
|
CatOneEthTxLen = NetCommOrgData(CatOne.GateWay, Payload, CatOneEthTxBuff);
|
||||||
CatOne.Status = CAT_ONE_SEND_DATA;
|
CatOne.Cat1Status = CAT_ONE_SEND_DATA;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(CatOne.Status == CAT_ONE_RESET || CatOne.Status == CAT_ONE_OFF) //外部命令执行,状态改变
|
if(CatOne.Cat1Status == CAT_ONE_RESET || CatOne.Cat1Status == CAT_ONE_OFF) //外部命令执行,状态改变
|
||||||
return;
|
return;
|
||||||
if(!CatOne.TcpConnFlag) {
|
if(!CatOne.TcpConnFlag) {
|
||||||
CatOne.Status = CAT_ONE_OFF;
|
CatOne.Cat1Status = CAT_ONE_OFF;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
CatSendErrCnt++;
|
CatSendErrCnt++;
|
||||||
if(CatSendErrCnt > CAT1_ERR_RESET_DLY_MAX) {
|
if(CatSendErrCnt > CAT1_ERR_RESET_DLY_MAX) {
|
||||||
CatOne.Status = CAT_ONE_RESET;
|
CatOne.Cat1Status = CAT_ONE_RESET;
|
||||||
CAT1_DBG_LOG("Cat1 has no data for a long time, Reset!\r\n");
|
CAT1_DBG_LOG("Cat1 has no data for a long time, Reset!\r\n");
|
||||||
CatSendErrCnt = 0;
|
CatSendErrCnt = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
CatOne.Status = CAT_ONE_WAIT_SEND;
|
CatOne.Cat1Status = CAT_ONE_WAIT_SEND;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -534,7 +534,7 @@ void CatOneLoopHandler(void)
|
|||||||
CatOne.AtCmdResendCnt = 3;
|
CatOne.AtCmdResendCnt = 3;
|
||||||
Cat1RevErrCnt++;
|
Cat1RevErrCnt++;
|
||||||
if(Cat1RevErrCnt > 10) {
|
if(Cat1RevErrCnt > 10) {
|
||||||
CatOne.Status = CAT_ONE_RESET;
|
CatOne.Cat1Status = CAT_ONE_RESET;
|
||||||
CAT1_DBG_LOG("Cat1 has no receive data for a long time, Reset!\r\n");
|
CAT1_DBG_LOG("Cat1 has no receive data for a long time, Reset!\r\n");
|
||||||
Cat1RevErrCnt = 0;
|
Cat1RevErrCnt = 0;
|
||||||
break;
|
break;
|
||||||
@@ -554,9 +554,9 @@ void CatOneLoopHandler(void)
|
|||||||
Cat1RevErrCnt = 0;
|
Cat1RevErrCnt = 0;
|
||||||
}
|
}
|
||||||
if(CatOne.GateWay->SvrRegFlag == false) //设备没注册,关闭4G,等待下一次重新注册
|
if(CatOne.GateWay->SvrRegFlag == false) //设备没注册,关闭4G,等待下一次重新注册
|
||||||
CatOne.Status = CAT_ONE_OFF;
|
CatOne.Cat1Status = CAT_ONE_OFF;
|
||||||
else
|
else
|
||||||
CatOne.Status = CAT_ONE_WAIT_SEND;
|
CatOne.Cat1Status = CAT_ONE_WAIT_SEND;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CAT_ONE_CLOSE_TCP:
|
case CAT_ONE_CLOSE_TCP:
|
||||||
@@ -572,7 +572,7 @@ void CatOneLoopHandler(void)
|
|||||||
CAT1_PWR_KEY_SET();
|
CAT1_PWR_KEY_SET();
|
||||||
CatSendErrCnt = 0;
|
CatSendErrCnt = 0;
|
||||||
CAT1_DBG_LOG("Cat1 Power Off!\r\n");
|
CAT1_DBG_LOG("Cat1 Power Off!\r\n");
|
||||||
CatOne.Status = CAT_ONE_IDEL;
|
CatOne.Cat1Status = CAT_ONE_IDEL;
|
||||||
CatOne.ResetDelayCnt = CATONE_RESET_DELAY_TIME_MAX;
|
CatOne.ResetDelayCnt = CATONE_RESET_DELAY_TIME_MAX;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -587,7 +587,7 @@ void CatOneLoopHandler(void)
|
|||||||
CAT1_PWR_KEY_CLR();
|
CAT1_PWR_KEY_CLR();
|
||||||
rt_thread_delay(1000);
|
rt_thread_delay(1000);
|
||||||
CAT1_PWR_KEY_SET();
|
CAT1_PWR_KEY_SET();
|
||||||
CatOne.Status = CAT_ONE_INIT;
|
CatOne.Cat1Status = CAT_ONE_INIT;
|
||||||
CatOne.AtCmdIdx = 0;
|
CatOne.AtCmdIdx = 0;
|
||||||
rt_thread_delay(1000);
|
rt_thread_delay(1000);
|
||||||
CatOne.GateWay->BatteryReadDlyCnt = 60;
|
CatOne.GateWay->BatteryReadDlyCnt = 60;
|
||||||
@@ -750,7 +750,7 @@ bool CatOneEthSendQueue(uint8_t *sData, uint16_t sLen)
|
|||||||
static void CatOneInit(GateWayPara GateWay)
|
static void CatOneInit(GateWayPara GateWay)
|
||||||
{
|
{
|
||||||
memset(&CatOne, 0x00, sizeof(CatOne_t));
|
memset(&CatOne, 0x00, sizeof(CatOne_t));
|
||||||
CatOne.Status = CAT_ONE_RESET;
|
CatOne.Cat1Status = CAT_ONE_RESET;
|
||||||
CatOne.GateWay = GateWay;
|
CatOne.GateWay = GateWay;
|
||||||
CatOne.CatOneRevCallBack = GateWay->SvrRevCallBack;
|
CatOne.CatOneRevCallBack = GateWay->SvrRevCallBack;
|
||||||
}
|
}
|
||||||
@@ -878,3 +878,13 @@ void CatReadImeiOrSim(char *Imei, char *Sim)
|
|||||||
Sim[20] = 0x00;
|
Sim[20] = 0x00;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CatOneTriggerRegister(void)
|
||||||
|
{
|
||||||
|
CatOne.Cat1Status = CAT_ONE_REG_SVR;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ETHTriggerRegister(void)
|
||||||
|
{
|
||||||
|
CatOne.EthStatus = ETH_REG_SVR;
|
||||||
|
}
|
||||||
|
|||||||
@@ -280,8 +280,8 @@ void CommUnitCmdSend(GateWayPara GateWay, uint8_t *CommUnitMac, CommUnitCmd_m Cm
|
|||||||
/*****************************************************************************************
|
/*****************************************************************************************
|
||||||
* 函数名称: CommUintOrgData
|
* 函数名称: CommUintOrgData
|
||||||
* 功能描述: 上传传感器数据函数
|
* 功能描述: 上传传感器数据函数
|
||||||
* 参 数: GWMac,网关mac地址
|
* 参 数: CUPara, 通讯单元参数
|
||||||
CUPara, 通讯单元参数
|
CUData, 通讯单元数据
|
||||||
sData, 数据入口
|
sData, 数据入口
|
||||||
* 返 回 值: 数据长度
|
* 返 回 值: 数据长度
|
||||||
*****************************************************************************************/
|
*****************************************************************************************/
|
||||||
|
|||||||
Reference in New Issue
Block a user