#include "main.h"

/*---------------------------------------------------------------------------------*/
/* 							       	继电器控制板HAL库版本	 版本V1.0		 			 		   	   */
/*             																															       */
/*---------------------------------------------------------------------------------*/


#if Download
	MqttInfo_Str MqttInfoStr = {
    .ClientID = "a284c67982b089f9",    // 字符串初始化
    .Username = "767836280083469392",
    .Passward = "125a0cfa04b8bc3b",
    .ServerIP = "58.17.14.95",         //IP
    .Topic = "/iot/data/down/",        //订阅主题
    .ServerPort = 1880,                // 端口号
    .Relay_State = {0},                // 继电器状态
    .iapVer = 0,                  		 // 版本号
    .iapFlag = 0,											 //升级标志位  
    .iapid = 0,											 //升级指令ID
    .iapCount = 0											 //升级次数
};
#else
	MqttInfo_Str   MqttInfoStr= {0};
#endif 


int main(void) {
  HAL_Init();			     	// 必要初始化
  systemClockInit(); 	// 系统时钟初始化  主频72M
  usart1Init(921600);	 	// 串口1初始化  波特率921600 用于串口打印 debug调试 printf
  usart2Init(9600);	 	 	// 串口2初始化  波特率9600 	DAM传输 用于连接-合宙4G-模块通信
  ledInit();	     			// LED引脚初始化  指示灯
	iicInit();       			//初始化IIC接口
  catInit();       			//4G模块初始化
	eepromReadInfo();     //从EEPROM中读取mqtt信息
  log_info("********************APP-Code********************");
  log_info("服 务 器：%s:%d", MqttInfoStr.ServerIP, MqttInfoStr.ServerPort); // 串口输出调试信息
  log_info("客户端ID：%s", MqttInfoStr.ClientID);				// 串口输出调试信息
  log_info("用 户 名：%s", MqttInfoStr.Username);				// 串口输出调试信息
  log_info("密    码：%s", MqttInfoStr.Passward);				// 串口输出调试信息
	log_info("系统版本：V%d", MqttInfoStr.iapVer);				// 串口输出调试信息
	log_info("升级 	id：%s", MqttInfoStr.iapid);				// 串口输出调试信息
  catConnectServer();//卡模块联网
	w25qxxInit();        //初始化W25Qxx		
	relayInit();		 		 //继电器引脚初始化 
  while (1) {
    usart2RxHandle(); // 4G接收数据处理
    usart2TxHandle(); // 4G发送数据处理
    activeEvents();   // 主动事件
  }
}


