530 lines
20 KiB
C
530 lines
20 KiB
C
/*
|
||
*********************************************************************************
|
||
头文件
|
||
*********************************************************************************
|
||
*/
|
||
#include "usart2.h"
|
||
#include "bsp.h"
|
||
|
||
/*
|
||
************************************************************************************
|
||
变量定义
|
||
************************************************************************************
|
||
*/
|
||
char USART2_RX_BUF[USART2_MAX_RECV_LEN]; //接收缓冲,最大USART2_MAX_RECV_LEN个字节.
|
||
u8 USART2_TX_BUF[USART2_MAX_SEND_LEN]; //发送缓冲,最大USART2_MAX_SEND_LEN字节
|
||
vu16 USART2_RX_STA=0;
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* 函 数 名: USART2_ReceiveBuff_Clear()
|
||
* 功能说明: 清空数组USART2_RX_BUF
|
||
* 输 入 :无
|
||
* 输 出 :无
|
||
*********************************************************************************************************
|
||
*/
|
||
void USART2_ReceiveBuff_Clear(void)
|
||
{
|
||
USART2_RX_STA=0;
|
||
memset(USART2_RX_BUF,0,USART2_MAX_RECV_LEN);
|
||
}
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* 函 数 名: USART2_Configuration()
|
||
* 功能说明: 串口2配置
|
||
* 输 入 :波特率baund
|
||
* 输 出 :无
|
||
*********************************************************************************************************
|
||
*/
|
||
void USART2_Configuration(u32 baund)
|
||
{
|
||
USART_InitTypeDef USART_InitStructure;
|
||
GPIO_InitTypeDef GPIO_InitStructure;
|
||
NVIC_InitTypeDef NVIC_InitStructure;
|
||
|
||
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); //使能USART2
|
||
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //GPIOB时钟
|
||
|
||
USART_DeInit(USART2); //复位串口1
|
||
|
||
//USART2_TX PB.10 PB.11
|
||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;
|
||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
|
||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||
GPIO_Init(GPIOA, &GPIO_InitStructure);
|
||
|
||
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2);
|
||
GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2);
|
||
|
||
USART_InitStructure.USART_BaudRate = baund;
|
||
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
|
||
USART_InitStructure.USART_StopBits = USART_StopBits_1;
|
||
USART_InitStructure.USART_Parity = USART_Parity_No;
|
||
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
||
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
|
||
USART_Init(USART2,&USART_InitStructure);
|
||
|
||
USART_Cmd(USART2,ENABLE);
|
||
|
||
USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);//开启USART2的接收中断
|
||
//Usart1 NVIC 配置
|
||
NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;//串口3中断通道
|
||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//抢占优先级3
|
||
NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; //子优先级3
|
||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
|
||
NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器、
|
||
|
||
USART_ClearFlag(USART2,USART_FLAG_TC); //清除发送完成标志位
|
||
}
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* 函 数 名: u3_printf()
|
||
* 功能说明: 串口3输出
|
||
* 输 入 :
|
||
* 输 出 :
|
||
*********************************************************************************************************
|
||
*/
|
||
void u2_printf(char* fmt,...)
|
||
{
|
||
u16 i,j;
|
||
va_list ap;
|
||
USART2_ReceiveBuff_Clear();
|
||
va_start(ap,fmt);
|
||
vsprintf((char*)USART2_TX_BUF,fmt,ap);
|
||
va_end(ap);
|
||
i=strlen((const char*)USART2_TX_BUF); //此次发送数据的长度
|
||
for(j=0;j<i;j++) //循环发送数据
|
||
{
|
||
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET); //循环发送,直到发送完毕
|
||
USART_SendData(USART2,USART2_TX_BUF[j]);
|
||
}
|
||
}
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* 函 数 名: timer2_init()
|
||
* 功能说明: 定时器2配置
|
||
* 输 入 :无
|
||
* 输 出 :无
|
||
*********************************************************************************************************
|
||
*/
|
||
void timer2_init(void)
|
||
{
|
||
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
|
||
NVIC_InitTypeDef NVIC_InitStructure;
|
||
|
||
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
|
||
TIM_TimeBaseStructure.TIM_Period = 999;
|
||
TIM_TimeBaseStructure.TIM_Prescaler = 3199;
|
||
TIM_TimeBaseStructure.TIM_ClockDivision = 1;
|
||
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
||
|
||
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
|
||
|
||
/* TIM IT enable */
|
||
TIM_ITConfig(TIM2,TIM_IT_Update, ENABLE);
|
||
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
|
||
/* TIM2 enable counter */
|
||
TIM_Cmd(TIM2, DISABLE);
|
||
|
||
/* Enable the TIM2 Interrupt */
|
||
|
||
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
|
||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
|
||
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
|
||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
||
NVIC_Init(&NVIC_InitStructure);
|
||
TIM_Cmd(TIM2, ENABLE); //使能TIMx
|
||
}
|
||
/*
|
||
*********************************************************************************************************
|
||
* 函 数 名: TIM2_Set()
|
||
* 功能说明: 定时器2开关
|
||
* 输 入 :sta 0 1
|
||
* 输 出 :无
|
||
*********************************************************************************************************
|
||
*/
|
||
void TIM2_Set(unsigned char sta)
|
||
{
|
||
if(sta)
|
||
{
|
||
TIM_SetCounter(TIM2,0);//计数器清空
|
||
TIM_Cmd(TIM2, ENABLE); //使能TIMx
|
||
}else TIM_Cmd(TIM2, DISABLE);//关闭定时器2
|
||
}
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* 函 数 名: TIM2_IRQHandler()
|
||
* 功能说明: 定时器2中断,按键扫描
|
||
* 输 入 :无
|
||
* 输 出 :无
|
||
*********************************************************************************************************
|
||
*/
|
||
void TIM2_IRQHandler(void)
|
||
{
|
||
if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)
|
||
{
|
||
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
|
||
WKUP_PIN_Status=Key_Scan();
|
||
}
|
||
}
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* 函 数 名: USART2_IRQHandler()
|
||
* 功能说明: 串口2接收中断
|
||
* 输 入 :USART2_RX_BUF[]
|
||
* 输 出 :无
|
||
*********************************************************************************************************
|
||
*/
|
||
void USART2_IRQHandler(void)
|
||
{
|
||
u8 res;
|
||
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)//接收到数据
|
||
{
|
||
res =USART_ReceiveData(USART2);
|
||
if((USART2_RX_STA&(1<<15))==0)//接收完的一批数据,还没有被处理,则不再接收其他数据
|
||
{
|
||
if(USART2_RX_STA<(USART2_MAX_RECV_LEN-1)) //还可以接收数据
|
||
{
|
||
USART2_RX_BUF[USART2_RX_STA++]=res; //记录接收到的值
|
||
}else
|
||
{
|
||
USART2_RX_STA|=1<<15; //强制标记接收完成
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* 函 数 名: USART2_Recieve_Ide()
|
||
* 功能说明: 远传下发指令查询
|
||
* 输 入 :无
|
||
* 输 出 :无
|
||
*********************************************************************************************************
|
||
*/
|
||
void USART2_Recieve_Ide(void)
|
||
{
|
||
u8 i = 0;
|
||
u16 temp_u16=0;
|
||
char temp_datas[100]={'0'};
|
||
char *recString;
|
||
char *recStringNext;
|
||
char adda;
|
||
char year_head[3];
|
||
char hhmmss[7]={'\0'},yymmdd[10]={'\0'};
|
||
Init_Data Init_Data_Equipment_temp;
|
||
Init_Data_Equipment_temp=Read_Equipment_Par();//读取设备参数
|
||
if( 1 )
|
||
{
|
||
/************恢复出厂设置参数***********/
|
||
if((strstr(USART2_RX_BUF, "parw-rst")!=NULL))//接收恢复出厂设置
|
||
{
|
||
Write_Factory_Par();
|
||
EEPROM_ReadBytes(140,&Par_store_flag,1);
|
||
if(Par_store_flag)BC25_Senddata_mode(13,"parw-rst,OK,*");
|
||
else BC25_Senddata_mode(13,"parw-rst,fail,*");
|
||
}
|
||
|
||
/*写入******设备ID、测量间隔、预约时间、测量模式、远传时间*********/
|
||
if((strstr(USART2_RX_BUF, "parw-1")!=NULL))//判断接收信息是否是命令参数设置
|
||
{
|
||
if((strstr(USART2_RX_BUF, Init_Data_Equipment.Equipment_ID)!=NULL)&
|
||
(strstr(USART2_RX_BUF, Init_Data_Equipment.Measure_Interval)!=NULL)&
|
||
(strstr(USART2_RX_BUF, Init_Data_Equipment.appointment_time)!=NULL)&
|
||
(strstr(USART2_RX_BUF, Init_Data_Equipment.measure_mode)!=NULL)&
|
||
(strstr(USART2_RX_BUF, Init_Data_Equipment.Pub_Time)!=NULL))
|
||
{
|
||
Init_Data_Equipment.par_change=0;
|
||
EEPROM_WriteBytes(185, 0,1);
|
||
}
|
||
else
|
||
{
|
||
Init_Data_Equipment.par_change=1;
|
||
EEPROM_WriteBytes(185, &Init_Data_Equipment.par_change,1);
|
||
}
|
||
memset(temp_datas,0,100);
|
||
for (i = 0 ; i < 5 ; i++)
|
||
{
|
||
if (i == 0)
|
||
{
|
||
if ((recString = strstr(USART2_RX_BUF, "parw-1")) == NULL)
|
||
;
|
||
recString+=6;
|
||
}
|
||
else
|
||
{
|
||
recString++;
|
||
if((recStringNext = strstr(recString, ",")) != NULL)
|
||
{
|
||
switch(i)
|
||
{
|
||
case 1: memset(Init_Data_Equipment.Equipment_ID,0,10);
|
||
memcpy(Init_Data_Equipment.Equipment_ID, recString, recStringNext - recString);
|
||
|
||
case 2: memset(Init_Data_Equipment.Measure_Interval,0,5);
|
||
memcpy(Init_Data_Equipment.Measure_Interval, recString, recStringNext - recString);
|
||
temp_u16=hexToDec(Init_Data_Equipment.Measure_Interval);
|
||
memset(Init_Data_Equipment.Measure_Interval,0,5);
|
||
sprintf(Init_Data_Equipment.Measure_Interval,"%d",temp_u16);
|
||
break; //获取测量间隔
|
||
case 3: memset(Init_Data_Equipment.appointment_time,0,appointment_time_len);
|
||
memcpy(Init_Data_Equipment.appointment_time, recString, recStringNext - recString);break; //预约时间
|
||
case 4: memset(Init_Data_Equipment.measure_mode,0,1);
|
||
memcpy(Init_Data_Equipment.measure_mode, recString, recStringNext - recString);break; //测量模式
|
||
|
||
default:break;
|
||
}
|
||
}
|
||
recString=recStringNext;
|
||
if(i==4)
|
||
{
|
||
recString++;
|
||
recStringNext=strstr(recString,",*");
|
||
memset(Init_Data_Equipment.Pub_Time,0,Pub_Time_len);
|
||
memcpy(Init_Data_Equipment.Pub_Time, recString, recStringNext - recString);
|
||
temp_u16=hexToDec(Init_Data_Equipment.Pub_Time);//
|
||
if(temp_u16<1)temp_u16=1;
|
||
memset(Init_Data_Equipment.Pub_Time,0,Pub_Time_len);
|
||
sprintf(Init_Data_Equipment.Pub_Time,"%d",temp_u16);
|
||
}
|
||
}
|
||
}
|
||
|
||
if(hexToDec(Init_Data_Equipment.Measure_Interval)<1)//测量间隔时间min
|
||
sprintf(Init_Data_Equipment.Measure_Interval,"%s","00001");//测量间隔最小60S
|
||
Write_Equipment_Par(Init_Data_Equipment);
|
||
BC25_Senddata_mode(11,"parw-1,OK,*");
|
||
if(strcmp(Init_Data_Equipment_temp.Equipment_ID,Init_Data_Equipment.Equipment_ID)||
|
||
strcmp(Init_Data_Equipment_temp.Measure_Interval,Init_Data_Equipment.Measure_Interval)||
|
||
strcmp(Init_Data_Equipment_temp.appointment_time,Init_Data_Equipment.appointment_time)||
|
||
strcmp(Init_Data_Equipment_temp.measure_mode,Init_Data_Equipment.measure_mode)||
|
||
strcmp(Init_Data_Equipment_temp.Pub_Time,Init_Data_Equipment.Pub_Time))
|
||
{
|
||
Init_Data_Equipment.par_change=1;
|
||
EEPROM_WriteBytes(185, &Init_Data_Equipment.par_change,1);
|
||
}
|
||
|
||
if((Init_Data_Equipment.measure_mode[0]=='1') && (IsAppointmentRight()))
|
||
{
|
||
Measure_Ap_S();
|
||
}
|
||
else
|
||
{
|
||
Measure_Ap_E();
|
||
}
|
||
}
|
||
/*写入******远传IP、远传端口、wifi名称、wifi密码、wifi端口*********/
|
||
if((strstr(USART2_RX_BUF, "parw-2")!=NULL)&(strstr(USART2_RX_BUF, "\"")!=NULL))
|
||
{
|
||
/* 判断参数是否与上次一样*/
|
||
if((strstr(USART2_RX_BUF, Init_Data_Equipment.Bc25_Ip)!=NULL)&
|
||
(strstr(USART2_RX_BUF, Init_Data_Equipment.Bc25_Port)!=NULL)&
|
||
(strstr(USART2_RX_BUF, Init_Data_Equipment.ESP8266_AP_SSIDs)!=NULL)&
|
||
(strstr(USART2_RX_BUF, Init_Data_Equipment.ESP8266_AP_PWDs)!=NULL)&
|
||
(strstr(USART2_RX_BUF, Init_Data_Equipment.ESP8266_AP_Ports)!=NULL))
|
||
{
|
||
Init_Data_Equipment.par_change=0;
|
||
EEPROM_WriteBytes(185, 0,1);
|
||
}
|
||
else
|
||
{
|
||
Init_Data_Equipment.par_change=1;
|
||
EEPROM_WriteBytes(185, &Init_Data_Equipment.par_change,1);
|
||
}
|
||
for (i = 0 ; i < 5 ; i++)
|
||
{
|
||
if (i == 0)
|
||
{
|
||
if ((recString = strstr(USART2_RX_BUF, "parw-2")) != NULL)
|
||
;//解析错误
|
||
recString+=6;
|
||
}
|
||
else
|
||
{
|
||
recString++;
|
||
if((recStringNext = strstr(recString, ",")) != NULL)
|
||
{
|
||
switch(i)
|
||
{
|
||
case 1: memset(Init_Data_Equipment.Bc25_Ip,0,20);
|
||
memcpy(Init_Data_Equipment.Bc25_Ip, recString, recStringNext - recString);break; //iot ip
|
||
case 2: memset(Init_Data_Equipment.Bc25_Port,0,10);
|
||
memcpy(Init_Data_Equipment.Bc25_Port, recString, recStringNext - recString);break; //iot port
|
||
case 3: memset(Init_Data_Equipment.ESP8266_AP_SSIDs,0,20);
|
||
memcpy(Init_Data_Equipment.ESP8266_AP_SSIDs, recString, recStringNext - recString);break; //wifi 名称
|
||
case 4: memset(Init_Data_Equipment.ESP8266_AP_PWDs,0,10);
|
||
memcpy(Init_Data_Equipment.ESP8266_AP_PWDs, recString, recStringNext - recString);break; //wifi 密码
|
||
//case 5:memcpy(temp_datass, recString, 12);break; //获取系统时间
|
||
default:break;
|
||
}
|
||
}
|
||
recString=recStringNext;
|
||
}
|
||
|
||
}
|
||
memcpy(Init_Data_Equipment.ESP8266_AP_Ports, recString+1, 4); //获取wifi port
|
||
Write_Equipment_Par(Init_Data_Equipment);
|
||
BC25_Senddata_mode(11,"parw-2,OK,*");
|
||
if(strcmp(Init_Data_Equipment_temp.Bc25_Ip,Init_Data_Equipment.Bc25_Ip)||
|
||
strcmp(Init_Data_Equipment_temp.Bc25_Port,Init_Data_Equipment.Bc25_Port)||
|
||
strcmp(Init_Data_Equipment_temp.ESP8266_AP_SSIDs,Init_Data_Equipment.ESP8266_AP_SSIDs)||
|
||
strcmp(Init_Data_Equipment_temp.ESP8266_AP_PWDs,Init_Data_Equipment.ESP8266_AP_PWDs)||
|
||
strcmp(Init_Data_Equipment_temp.ESP8266_AP_Ports,Init_Data_Equipment.ESP8266_AP_Ports))
|
||
{
|
||
Init_Data_Equipment.par_change=1;
|
||
EEPROM_WriteBytes(185, &Init_Data_Equipment.par_change,1);
|
||
}
|
||
}
|
||
|
||
/*写入******立刻启动测量*********/
|
||
if((strstr(USART2_RX_BUF, "parw-3")!=NULL))
|
||
{
|
||
if ((recString = strstr(USART2_RX_BUF, "parw-3,1")) != NULL)
|
||
{
|
||
if(TASKRUNSS.APPO_RUN|TASKRUNSS.PROS1_RUN)//判断测量任务是否被占用
|
||
{
|
||
BC25_Senddata_mode(11,"parw-3,OK,*");
|
||
}else
|
||
{
|
||
MYITStatus1.WKUP_MEA_WIFI=1;
|
||
|
||
BC25_Senddata_mode(11,"parw-3,OK,*");
|
||
}
|
||
}
|
||
if ((recString = strstr(USART2_RX_BUF, "parw-3,0")) != NULL)
|
||
{
|
||
|
||
}
|
||
|
||
}
|
||
/*设置******系统时间*********/
|
||
if((recString=strstr(USART2_RX_BUF, "parw-4")) !=NULL)
|
||
{
|
||
memset(temp_datas,0,100);
|
||
recString+=7;
|
||
memcpy(temp_datas, recString, 13); //获取系统时间
|
||
if(((temp_datas[4]-'0')*10+(temp_datas[5]-'0')*1)>12|
|
||
((temp_datas[6]-'0')*10+(temp_datas[7]-'0')*1)>31|
|
||
((temp_datas[8]-'0')*10+(temp_datas[9]-'0')*1)>23|
|
||
((temp_datas[10]-'0')*10+(temp_datas[11]-'0')*1)>59|
|
||
((temp_datas[12]-'0')*10+(temp_datas[13]-'0')*1)>59)
|
||
{
|
||
BC25_Senddata_mode(13,"parw-4,fail,*");
|
||
|
||
}else
|
||
{
|
||
SetRTC(
|
||
((temp_datas[2]-'0')*10+(temp_datas[3]-'0')*1),
|
||
((temp_datas[4]-'0')*10+(temp_datas[5]-'0')*1),
|
||
((temp_datas[6]-'0')*10+(temp_datas[7]-'0')*1),
|
||
((temp_datas[8]-'0')*10+(temp_datas[9]-'0')*1),
|
||
((temp_datas[10]-'0')*10+(temp_datas[11]-'0')*1),
|
||
((temp_datas[12]-'0')*10+(temp_datas[13]-'0')*1)
|
||
);
|
||
DS3231_Set(
|
||
((temp_datas[2]-'0')*10+(temp_datas[3]-'0')*1),
|
||
((temp_datas[4]-'0')*10+(temp_datas[5]-'0')*1),
|
||
((temp_datas[6]-'0')*10+(temp_datas[7]-'0')*1),
|
||
((temp_datas[8]-'0')*10+(temp_datas[9]-'0')*1),
|
||
((temp_datas[10]-'0')*10+(temp_datas[11]-'0')*1),
|
||
((temp_datas[12]-'0')*10+(temp_datas[13]-'0')*1)
|
||
);
|
||
EEPROM_WriteBytes(170,(u8*)temp_datas,2);
|
||
|
||
|
||
if((RTC->CR)&0x100)//已经开启了远传闹钟
|
||
{
|
||
RTC_AlarmAConfig(get_pubidv());
|
||
}
|
||
if((RTC->CR)&0x200)//已经开启间隔闹钟
|
||
{
|
||
RtcWakeUpConfig(get_meaidv() - 1);
|
||
}
|
||
BC25_Senddata_mode(11,"parw-4,OK,*");
|
||
Init_Data_Equipment.par_change=1;
|
||
EEPROM_WriteBytes(185, 0,1);
|
||
}
|
||
}
|
||
|
||
/*写入******传感器地址修改*********/
|
||
if((recString=strstr(USART2_RX_BUF, "parw-5")) !=NULL) //parw-aAb,0A1
|
||
{
|
||
recString=strstr(recString, ",");
|
||
recString++;
|
||
recStringNext=recString+2;
|
||
Sdi_chanegadd(recString[0],recStringNext[0]);
|
||
adda=Sdi_Readone(recStringNext[0]);
|
||
if(adda==0)
|
||
{
|
||
BC25_Senddata_mode(11,"parw-5,OK,*");
|
||
//数值相同
|
||
}else
|
||
BC25_Senddata_mode(13,"parw-5,fail,*");
|
||
|
||
|
||
}
|
||
/*读取******设备ID、测量间隔、预约时间、测量模式、远传时间*********/
|
||
if((recString=strstr(USART2_RX_BUF, "parr-1")) !=NULL)
|
||
{
|
||
//&&(strstr(USART2_RX_BUF.Data_RX_BUF, "\r\n"))!=NULL)
|
||
memset(temp_datas,0,100);
|
||
|
||
Init_Data_Equipment=Read_Equipment_Par();
|
||
sprintf(temp_datas,"parr-1,%s,%d,%s,%s,%d,*",
|
||
Init_Data_Equipment.Equipment_ID,
|
||
hexToDec(Init_Data_Equipment.Measure_Interval),
|
||
(Init_Data_Equipment.appointment_time),
|
||
(Init_Data_Equipment.measure_mode),
|
||
hexToDec(Init_Data_Equipment.Pub_Time)
|
||
);
|
||
BC25_Senddata_mode(strlen(temp_datas),temp_datas);
|
||
}
|
||
|
||
/*读取******远传IP、远传端口、wifi名称、wifi密码、wifi端口*********/
|
||
if(strstr(USART2_RX_BUF, "parr-2"))
|
||
{
|
||
memset(temp_datas,0,100);
|
||
GetRTC(hhmmss,yymmdd);
|
||
sprintf(temp_datas,"%s,%s,%s,%s,%s,%s,*",
|
||
"parr-2",
|
||
Init_Data_Equipment.Bc25_Ip,
|
||
Init_Data_Equipment.Bc25_Port,
|
||
Init_Data_Equipment.ESP8266_AP_SSIDs,
|
||
Init_Data_Equipment.ESP8266_AP_PWDs,
|
||
Init_Data_Equipment.ESP8266_AP_Ports
|
||
);
|
||
BC25_Senddata_mode(strlen(temp_datas),temp_datas);
|
||
|
||
}
|
||
|
||
/*读取******系统时间 日期*********/
|
||
if(strstr(USART2_RX_BUF, "parr-4"))
|
||
{
|
||
memset(temp_datas,0,100);
|
||
GetRTC(hhmmss,yymmdd);
|
||
EEPROM_ReadBytes(170, (u8*)year_head,2);
|
||
sprintf(temp_datas,"parr-4,%s%s %s,*",year_head,yymmdd,hhmmss);
|
||
BC25_Senddata_mode(strlen(temp_datas),temp_datas);
|
||
}
|
||
|
||
/*读取******传感器地址查询*********/
|
||
if((recString=strstr(USART2_RX_BUF, "parr-s?")) !=NULL)
|
||
{
|
||
memset(temp_datas,0,100);
|
||
|
||
Init_Data_Equipment=Read_Equipment_Par();
|
||
sprintf(temp_datas,"parr-6,%d,*", hexToDec(Init_Data_Equipment.Equipment_ID));
|
||
BC25_Senddata_mode(strlen(temp_datas),temp_datas);
|
||
}
|
||
|
||
}
|
||
}
|
||
/***************************** END OF FILE *********************************/
|