龙三郎 1 سال پیش
والد
کامیت
b6479a119f

+ 6 - 5
Drivers/Business/PumpBusiness.c

@@ -105,6 +105,12 @@ static uint32_t Business_wait_time = 1200; // 
 // 业务处理
 void PumpBusines_Handle(void)
 {
+	// 没注册,直接返回
+	if(regist_get_result() != Regist_Result_Success)
+	{
+		return;
+	}
+	
 	// 定时发送数据
 	if(time_get_delay(&timer) > 1000 * Business_wait_time) // // 定时时间,20分钟
 	{
@@ -172,11 +178,6 @@ void pump_business_loop_execution()
 {
 		// 初始化
 	Initialize_Handle();
-	// 没注册,直接返回
-	if(regist_get_result() == Regist_Result_Failure)
-	{
-		return;
-	}
 
 	// 业务处理
 	PumpBusines_Handle();

+ 7 - 2
Drivers/CONFIG.h

@@ -5,10 +5,15 @@
 
 #define DEBUG 1 // Debug开关 1是开,0是关
 
+// 测试环境
+//#define TEST_ENV 1
+// 生产环境
+#define PROD_ENV 1
 
 
-//#define EC800M 1 //4G开关,不能数字开头
-#define BC260Y 1  // NB
+
+#define EC800M 1 //4G开关,不能数字开头
+//#define BC260Y 1  // NB
 
 
 

+ 0 - 1
Drivers/Modules/Regist.h

@@ -6,7 +6,6 @@ enum Regist_Result
 {
 	Regist_Result_None, // 未注册
 	Regist_Result_Success, // 注册成功
-	Regist_Result_Failure, // 注册失败
 };
 
 // 注册流程

+ 31 - 21
Drivers/Modules/bc260y/Bc260y_Regist.c

@@ -32,15 +32,19 @@
 #include "Common_Util.h"
 #include "Tuoreniot.h"
 
-static uint8_t register_status;//注册成功,向flash存储标志
 static Coefficient_Data flashdata;
-static uint8_t mcu_id[8]="ceshi005";
-// 生成环境
+extern uint8_t mcu_id[8];
+#if  PROD_ENV
+// 生产环境
 static char * REGIST_SERVER = "iot.tuoren.com" ; //注册服务器地址
 static uint16_t REGIST_PORT = 8888; //端口号
+#endif
+
+#if TEST_ENV
 // 开发环境
-//static char * REGIST_SERVER = "z18z017026.51vip.biz" ; //注册服务器地址
-//static uint16_t REGIST_PORT = 31396; //端口号
+static char * REGIST_SERVER = "z18z017026.51vip.biz" ; //注册服务器地址
+static uint16_t REGIST_PORT = 31396; //端口号
+#endif
 
 static uint8_t tcpconnectID = 2;
 
@@ -218,41 +222,47 @@ uint8_t regist_Handle()
   return regist_flag;
 }
 
+static uint8_t register_status = 0;//注册成功,向flash存储标志
 uint8_t regist_device_sync(void)
 {
- 	flashdata.read_flag=0;
-	//读取flash
-	Log_Printf_Debug("读取前read_flag:%d\r\n",flashdata.read_flag);
-	STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)&flashdata,sizeof(flashdata));//读取flash
-	my_delay_ms(10);
-	//已经注册。读取flash成功
-	if(flashdata.read_flag == 1)
-	{
-		register_status=1;
-		Log_Printf_Debug("读取flash成功read_flag:%d,\ndeviceSecret:%s,\n productKey:%s,\ndeviceName:%s\r\n",flashdata.read_flag,flashdata.deviceSecret,flashdata.productKey,flashdata.deviceName); 
-		return 1;
-	}
 	//未注册开始注册流程
 	register_status=regist_Handle();//注册流程
 	if (register_status==0)//注册流程失败不储存flash
 	{
 		clearflash();
-		return 0;
 	}
 	else
 	{
 		storedata();//存储到flash
-		return 1;
 	}
+	return register_status;
 }
+
+static uint8_t read_flash_flag = 0; // 读取flash的标志
 enum Regist_Result regist_get_result(void)
 {
-  if(register_status==1){
+	if(read_flash_flag == 0)
+	{
+		flashdata.read_flag=0;
+		//读取flash
+		Log_Printf_Debug("读取前read_flag:%d\r\n",flashdata.read_flag);
+		STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)&flashdata,sizeof(flashdata));//读取flash
+		my_delay_ms(10);
+		//已经注册。读取flash成功
+		if(flashdata.read_flag == 1)
+		{
+			register_status=1;
+			Log_Printf_Debug("读取flash成功read_flag:%d,\ndeviceSecret:%s,\n productKey:%s,\ndeviceName:%s\r\n",flashdata.read_flag,flashdata.deviceSecret,flashdata.productKey,flashdata.deviceName); 
+		}
+		read_flash_flag = 1;
+	}
+	
+  if(flashdata.read_flag == 1){
     return Regist_Result_Success;
   }
   else
   {
-    return Regist_Result_Failure;
+    return Regist_Result_None;
   }
 }
 

+ 2 - 2
Drivers/Modules/ec800m/Ec800m_Initialize.c

@@ -74,7 +74,7 @@ static void powerwait(void)
 // 失败
 static void power_failure(char * info)
 {
-	Log_Printf_Debug("STEP: 数据发送失败,%s\r\n", info);
+	Log_Printf_Debug("STEP: 初始化失败,%s\r\n", info);
 	networkTest_Flag=1;
 	pownext_step(STEP_SET_CFUN_0);
 }
@@ -82,7 +82,7 @@ static void power_failure(char * info)
 // 成功
 static void power_success(char * info)
 {
-	Log_Printf_Debug("STEP: 数据发送成功,%s\r\n", info);
+	Log_Printf_Debug("STEP: 初始化成功,%s\r\n", info);
 
 	networkTest_Flag=2;
 	pownext_step(STEP_SET_CFUN_0);

+ 32 - 22
Drivers/Modules/ec800m/Ec800m_Regist.c

@@ -30,19 +30,22 @@
 #include "At_Module.h"
 #include "Common_Util.h"
 #include "Tuoreniot.h"
-static uint8_t mcu_id[8] = "1234567";
-
-static uint8_t register_status;//注册成功,向flash存储标志
+extern uint8_t mcu_id[8];
 
 static Coefficient_Data flashdata;
 
 static uint8_t tcpconnectID = 2;
-// 生成环境
+#if  PROD_ENV
+// 生产环境
 static char * REGIST_SERVER = "iot.tuoren.com" ; //注册服务器地址
 static uint16_t REGIST_PORT = 8888; //端口号
+#endif
+
+#if TEST_ENV
 // 开发环境
-//static char * REGIST_SERVER = "z18z017026.51vip.biz" ; //注册服务器地址
-//static uint16_t REGIST_PORT = 31396; //端口号
+static char * REGIST_SERVER = "z18z017026.51vip.biz" ; //注册服务器地址
+static uint16_t REGIST_PORT = 31396; //端口号
+#endif
 
 // 注册参数
 static struct Regist_Params_Struct regist_params_struct = {
@@ -167,41 +170,48 @@ uint8_t regist_Handle()
 
 
 
+static uint8_t register_status = 0;//注册成功,向flash存储标志
 uint8_t regist_device_sync(void)
 {
-	flashdata.read_flag=0;
-	//读取flash
-	Log_Printf_Debug("读取前read_flag:%d\r\n",flashdata.read_flag);
-	STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)&flashdata,sizeof(flashdata));//读取flash
-	my_delay_ms(10);
-	//已经注册。读取flash成功
-	if(flashdata.read_flag == 1)
-	{
-		register_status=1;
-		Log_Printf_Debug("读取flash成功read_flag:%d,\ndeviceSecret:%s,\n productKey:%s,\ndeviceName:%s\r\n",flashdata.read_flag,flashdata.deviceSecret,flashdata.productKey,flashdata.deviceName); 
-		return 1;
-	}
 	//未注册开始注册流程
 	register_status=regist_Handle();//注册流程
 	if (register_status==0)//注册流程失败不储存flash
 	{
 		clearflash();
-		return 0;
 	}
 	else
 	{
 		storedata();//存储到flash
-		return 1;
 	}
+	return register_status;
 }
+
+
+static uint8_t read_flash_flag = 0; // 读取flash的标志
 enum Regist_Result regist_get_result(void)
 {
-  if(register_status == 1){
+	if(read_flash_flag == 0)
+	{
+		flashdata.read_flag=0;
+		//读取flash
+		Log_Printf_Debug("读取前read_flag:%d\r\n",flashdata.read_flag);
+		STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)&flashdata,sizeof(flashdata));//读取flash
+		my_delay_ms(10);
+		//已经注册。读取flash成功
+		if(flashdata.read_flag == 1)
+		{
+			register_status=1;
+			Log_Printf_Debug("读取flash成功read_flag:%d,\ndeviceSecret:%s,\n productKey:%s,\ndeviceName:%s\r\n",flashdata.read_flag,flashdata.deviceSecret,flashdata.productKey,flashdata.deviceName); 
+		}
+		read_flash_flag = 1;
+	}
+	
+  if(flashdata.read_flag == 1){
     return Regist_Result_Success;
   }
   else
   {
-    return Regist_Result_Failure;
+    return Regist_Result_None;
   }
 }
 

+ 14 - 2
User/main.c

@@ -25,6 +25,8 @@
 #include "bc260y.h"
 #include "At_Module.h"
 
+uint8_t mcu_id[8] = "ceshi005";
+
 // 计时器
 static struct TIMER_Struct timer;
 //static uint8_t send_flag = 1;
@@ -47,8 +49,18 @@ int main(void)
 //	my_delay_ms(5000);
 	
 	//注册设备,最多失败三次
-	
-  regist_device_sync();
+	if(regist_get_result() == Regist_Result_None)
+	{
+		uint8_t state = regist_device_sync();
+		if(state == 1)
+		{
+			// 注册成功
+		}
+		else
+		{
+			// 注册失败
+		}
+	}
 	
 	Log_Printf_Debug("注册结束\r\n");