⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 protocol.c.bak

📁 使用avr--cc2420模块程序,需要原理图的联系 QQ:120304948
💻 BAK
📖 第 1 页 / 共 2 页
字号:
    v_Set1302(szBuffer);
	rtc_set_flag = FALSE;

	//send reply
	szreply[0] = 0x16;
	szreply[1] = 0x00;
	szreply[2] = 0x03;
	szreply[3] = 0xA8;
	szreply[4] = my_id_arr[0];
	szreply[5] = my_id_arr[1];

	szSum = 0x00;
	for(nloop = 1; nloop < 6; nloop ++)
	{
		szSum += szreply[nloop];
	}
	szreply[6] = 0xFF - szSum;

	SerialPortWrite(szreply, 7);
}

void ReadHistoryData()
{
	unsigned char nyear, nmonth, nday;

	unsigned int nOmbroDay = 0, 
		nOmbroCon = 0, 
		nOmbro10Max = 0, 
		nOmbro60Max = 0;
	unsigned char n10Hour = 0, 
		n10Min = 0, 
		n60Hour = 0, 
		n60Min = 0;

	char *pTemp;
	char szsum;
	unsigned int ntemp;
	unsigned int nloop;
	char szreply[40];

	if(!validateID())
		return;

	nyear = PROTOCOL_TEMP[nSync + 6];
	nmonth = PROTOCOL_TEMP[nSync + 7];
	nday = PROTOCOL_TEMP[nSync + 8];

//#error "读历史数据"

	szreply[0] = 0x16;
	szreply[1] = 0x00;
	szreply[2] = 0x12;
	szreply[3] = 0xAA;
	szreply[4] = my_id_arr[0];
	szreply[5] = my_id_arr[1];
	szreply[6] = nyear;
	szreply[7] = nmonth;
	szreply[8] = nday;
    
    nOmbroDay *=2;
	pTemp = (char*)&nOmbroDay;
	szreply[9] = *(pTemp + 0);
	szreply[10] = *(pTemp + 1);

    nOmbroCon *=2;
	pTemp = (char*)&nOmbroCon;
	szreply[11] = *(pTemp + 0);
	szreply[12] = *(pTemp + 1);
	
    nOmbro10Max *=2;
	pTemp = (char*)&nOmbro10Max;
	szreply[13] = *(pTemp + 0);
	szreply[14] = *(pTemp + 1);
	szreply[15] = n10Hour;
	szreply[16] = n10Min;
	
    nOmbro60Max *=2;
	pTemp = (char*)&nOmbro60Max;
	szreply[17] = *(pTemp + 0);
	szreply[18] = *(pTemp + 1);
	szreply[19] = n60Hour;
	szreply[20] = n60Min;
	
	szsum = 0x00;
	for (nloop = 1; nloop < 21; nloop ++)
	{
		szsum += szreply[nloop];
	}
	szreply[21] = 0xFF - szsum;

	SerialPortWrite(szreply, 22);
}

void ConfirmMobilePhone()
{
	char szreply[30];
	
	if(!validateID())
		return;
		
	bMobilePhone = FALSE;
//#error " 清除手机设置上传标识"
}

void ConfirmAlarmValue()
{
	if(!validateID())
		return;
		
	bAlarmValue = FALSE;
//#error "清除告警值上传标识"
}

void ConfirmAlarmData()
{
	if(!validateID())
		return;
		
	bAlarmData = FALSE;
//#error "清除告警信息上传标识"
}

void uploadRealtimeData()
{
	char szreply[30];
	char szsum;
	char nloop;
	char *pTemp;
	unsigned int nTemp;
	unsigned int nmy_id;

	char nyear = 0, nmonth = 0, nday = 0, nhour = 0, nmin = 0, nsec = 0;

	nyear = CLK_YEAR;
	nmonth = CLK_MONTH;
	nday = CLK_DAY;
	nhour = CLK_HOUR;
	nmin = CLK_MIN;
	nsec = CLK_SEC;

	nmy_id = MY_ID;
	pTemp = (char*)&nmy_id;
	szreply[0] = 0x16;
	szreply[1] = 0x00;
	szreply[2] = 0x19;
	szreply[3] = 0xC2;
	szreply[4] = *(pTemp + 0);
	szreply[5] = *(pTemp + 1);

	szreply[6] = nyear;
	szreply[7] = nmonth;
	szreply[8] = nday;
	szreply[9] = nhour;
	szreply[10] = nmin;
	szreply[11] = nsec;
	
	nTemp = ombro_ten*2;
	pTemp = (char*)&nTemp;
	szreply[12] = *(pTemp + 0);
	szreply[13] = *(pTemp + 1);

	nTemp = ombro_hour*2;
	pTemp = (char*)&nTemp;
	szreply[14] = *(pTemp + 0);
	szreply[15] = *(pTemp + 1);

	nTemp = ombro_day*2;
	pTemp = (char*)&nTemp;
	szreply[16] = *(pTemp + 0);
	szreply[17] = *(pTemp + 1);

	nTemp = ombro_continue*2;
	pTemp = (char*)&nTemp;
	szreply[18] = *(pTemp + 0);
	szreply[19] = *(pTemp + 1);

	nTemp = ombro_ten_min_max*2;
	pTemp = (char*)& nTemp;
	szreply[20] = *(pTemp + 0);
	szreply[21] = *(pTemp + 1);

	nhour = ombro_ten_min_max_hr;
	nmin = ombro_ten_min_max_min;
	szreply[22] = nhour;
	szreply[23] = nmin;

	nTemp = ombro_hour_max*2;
	pTemp = (char*)&nTemp;
	szreply[24] = *(pTemp + 0);
	szreply[25] = *(pTemp + 1);

	nhour = ombro_hour_max_hr;
	nmin = ombro_hour_max_min;
	szreply[26] = nhour;
	szreply[27] = nmin;

	szsum = 0x00;
	for (nloop = 1; nloop < 28; nloop ++)
	{
		szsum += szreply[nloop];
	}

	szreply[28] = 0xFF - szsum;

	SerialPortWrite(szreply, 29);
	
}

void uploadAlarmData()
{
	char szreply[35];
	char szsum;
	char nloop;
	char *pTemp;
	unsigned int nTemp;
	unsigned int nmy_id;
	char nyear = 0, nmonth = 0, nday = 0, nhour = 0, nmin = 0, nsec = 0;

//#error "生成告警类型 alarmtype "


	nyear = CLK_YEAR;
	nmonth = CLK_MONTH;
	nday = CLK_DAY;
	nhour = CLK_HOUR;
	nmin = CLK_MIN;
	nsec = CLK_SEC;

	nmy_id = MY_ID;
	pTemp = (char*)&nmy_id;
	szreply[0] = 0x16;
	szreply[1] = 0x00;
	szreply[2] = 0x1A;
	szreply[3] = 0xC4;
	szreply[4] = *(pTemp + 0);
	szreply[5] = *(pTemp + 1);

	szreply[6] = nyear;
	szreply[7] = nmonth;
	szreply[8] = nday;
	szreply[9] = nhour;
	szreply[10] = nmin;
	szreply[11] = nsec;
	
	szreply[12] = alarm_status;

	nTemp = ombro_ten*2;
	pTemp = (char*)&nTemp;
	szreply[13] = *(pTemp + 0);
	szreply[14] = *(pTemp + 1);

	nTemp = ombro_hour*2;
	pTemp = (char*)&nTemp;
	szreply[15] = *(pTemp + 0);
	szreply[16] = *(pTemp + 1);

	nTemp = ombro_day*2;
	pTemp = (char*)&nTemp;
	szreply[17] = *(pTemp + 0);
	szreply[18] = *(pTemp + 1);

	nTemp = ombro_continue*2;
	pTemp = (char*)&nTemp;
	szreply[19] = *(pTemp + 0);
	szreply[20] = *(pTemp + 1);

	nTemp = ombro_ten_min_max*2;
	pTemp = (char*)& nTemp;
	szreply[21] = *(pTemp + 0);
	szreply[22] = *(pTemp + 1);

	nhour = ombro_ten_min_max_hr;
	nmin = ombro_ten_min_max_min;
	szreply[23] = nhour;
	szreply[24] = nmin;

	nTemp = ombro_hour_max*2;
	pTemp = (char*)&nTemp;
	szreply[25] = *(pTemp + 0);
	szreply[26] = *(pTemp + 1);

	nhour = ombro_hour_max_hr;
	nmin = ombro_hour_max_min;
	szreply[27] = nhour;
	szreply[28] = nmin;

	szsum = 0x00;
	for (nloop = 1; nloop < 29; nloop ++)
	{
		szsum += szreply[nloop];
	}

	szreply[29] = 0xFF - szsum;

	SerialPortWrite(szreply, 30);

//#error "设置等待告警信息返回标识"	
}

void uploadAlarmValue()
{
	char szreply[30];
	char szsum;
	char nloop;
	char *pTemp;
	unsigned int nTemp;
	unsigned int nmy_id;

	nmy_id = MY_ID;
	pTemp = (char*)&nmy_id;
	szreply[0] = 0x16;
	szreply[1] = 0x00;
	szreply[2] = 0x15;
	szreply[3] = 0xAE;
	
	szreply[4] = *(pTemp + 0);
	szreply[5] = *(pTemp + 1);

	nTemp = (unsigned int)(g_lx0*10.0);
	pTemp = (char*)& nTemp;
	szreply[6] = *(pTemp + 0);
	szreply[7] = *(pTemp + 1);

	nTemp = (unsigned int)(g_lx1*10.0);
	pTemp = (char*)& nTemp;
	szreply[8] = *(pTemp + 0);
	szreply[9] = *(pTemp + 1);

	nTemp = (unsigned int)(g_l11*10.0);
	pTemp = (char*)& nTemp;
	szreply[10] = *(pTemp + 0);
	szreply[11] = *(pTemp + 1);

	nTemp = (unsigned int)(g_l12*10.0);
	pTemp = (char*)& nTemp;
	szreply[12] = *(pTemp + 0);
	szreply[13] = *(pTemp + 1);

	nTemp = (unsigned int)(g_l13*10.0);
	pTemp = (char*)& nTemp;
	szreply[14] = *(pTemp + 0);
	szreply[15] = *(pTemp + 1);

	nTemp = (unsigned int)(g_l22*10.0);
	pTemp = (char*)& nTemp;
	szreply[16] = *(pTemp + 0);
	szreply[17] = *(pTemp + 1);

	nTemp = (unsigned int)(g_l23*10.0);
	pTemp = (char*)& nTemp;
	szreply[18] = *(pTemp + 0);
	szreply[19] = *(pTemp + 1);

	nTemp = (unsigned int)(g_l32*10.0);
	pTemp = (char*)& nTemp;
	szreply[20] = *(pTemp + 0);
	szreply[21] = *(pTemp + 1);
	
	nTemp = (unsigned int)(g_l33*10.0);
	pTemp = (char*)& nTemp;
	szreply[22] = *(pTemp + 0);
	szreply[23] = *(pTemp + 1);

	szsum = 0x00;
	for (nloop = 1; nloop < 24; nloop ++)
	{
		szsum += szreply[nloop];
	}

	szreply[24] = 0xFF - szsum;

	SerialPortWrite(szreply, 25);

//#error "设置等待告警值返回标识"	
}

void uploadMobile()
{
	char szreply[25];
	char szsum;
	char nloop;
	char *pTemp;
	unsigned int nmy_id;

	nmy_id = MY_ID;
	pTemp = (char*)&nmy_id;
	szreply[0] = 0x16;
	szreply[1] = 0x00;
	szreply[2] = 0x0E;
	szreply[3] = 0xAC;
	szreply[4] = *(pTemp + 0);
	szreply[5] = *(pTemp + 1);

	szreply[6] = MobilePhone[0];
	szreply[7] = MobilePhone[1];
	szreply[8] = MobilePhone[2];
	szreply[9] = MobilePhone[3];
	szreply[10] = MobilePhone[4];
	szreply[11] = MobilePhone[5];
	szreply[12] = MobilePhone[6];
	szreply[13] = MobilePhone[7];
	szreply[14] = MobilePhone[8];
	szreply[15] = MobilePhone[9];
	szreply[16] = MobilePhone[10];

	szsum = 0x00;
	for (nloop = 1; nloop < 17; nloop ++)
	{
		szsum += szreply[nloop];
	}

	szreply[17] = 0xFF - szsum;

	SerialPortWrite(szreply, 18);

//#error "设置等待手机号码回传确认标识"
}

/* bcd to hex */
unsigned int bcd2hex(BYTE bdata)
{
    unsigned int tmp;
    tmp = (((unsigned int)(bdata >> 4) * 10) + (unsigned int)(bdata & 0x0f));
    return tmp;
}

/* hex to bcd */
unsigned char hex2bcd(unsigned char hdata)
{
    unsigned char bdata;
    unsigned char tmp;

    tmp = hdata % 100;
    bdata=(unsigned char)((unsigned int)hdata) / 100 << 8;
    bdata=(unsigned char)(bdata | tmp / 10 << 4);
    bdata=(unsigned char)(bdata | tmp % 10);
    return bdata;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -