Beispiel #1
0
int main(void)
{
	uchar ucKey;
	ushort ret;

	uchar *data="\x12\x34\x56\x78";
	int len=strlen(data);

	SystemInit();
	while(1)
	{
		ScrCls();
		kbflush();
		ScrPrint(0,0,0x01|0x80,"CRC-16          ");
		do{

			ucKey=getkey();

		}while(ucKey!=KEY1 && ucKey!=KEYENTER && ucKey!=KEYCANCEL);

		if(ucKey==KEY1 || ucKey==KEYENTER)
		{	
				ScrCls();
				ret=get_crc16(data,len);
				Lcdprintf("0x%x\n",ret);
				getkey();
		}
		if(ucKey==KEYCANCEL) return 1;
	}
	return 0;
}
Beispiel #2
0
ushort get_crc16(const uchar *data_block,int data_len)
{	
	 uchar i;
	 int j;
	 ushort crc16;
	 ulong temp=0;

	 if(NULL==data_block)
	 {
		 Lcdprintf("Param Error\n");
		 return 1;
	 }
	for(j=0;j<data_len;j++)
	{
	 for(i=0x80;i!=0x00;i=i>>1)
	 {		
		   temp<<=1;
		 if(temp & 0x10000)  
			 temp=temp ^ 0x11021;

		 if(*data_block & i)
		 {
			 temp^=0x1021;
			
		 }
	 }

	 data_block++;
	}
	crc16=temp;
	return crc16;
}
Beispiel #3
0
//扫描周围的热点
int ScanWifiAps(void)
{
	int i, iRet, iApCount;
	uchar ucKey, ucTempBuf[100];
	ST_WIFI_AP stWifiAps[16];

	ScrClrBelow(1);
	ScrPrint(0, 1, 0, _T("SCANNING AP...")); //scanning ap

	if(strlen(glSysCtrl.stAppWifiPara.Ssid) != 0)
	{
		WifiDisconAp();
	}

	iApCount = 8;
	memset(&stWifiAps, 0, sizeof(stWifiAps));
	iRet = WifiScanAps(&stWifiAps[0], iApCount);
	if(iRet == 0)
	{
		ScrClrBelow(1);
		ScrPrint(0, 2, 0, _T("NO AVAILABLE AP"));
		getkey();
		return WIFI_ERR_NULL;
	}
	if(iRet < 0)
	{
		ScrClrBelow(1);
		ScrPrint(0, 2, 0, "ScanAps err=%d", iRet); 
		getkey();
		return WIFI_ERR_SCAN;
	}

	ScrCls();
	PubDispString(_T("SEARCH NETWORK"), DISP_LINE_CENTER|0);  //please select
	
	//显示搜索到的热点
	for (i=0; i<iRet; i++) 
	{
		ScrPrint(0, (uchar)(i + 1), 0, "%d - %s",i, stWifiAps[i].Ssid);
	}

	while (1) 
	{
		kbflush();
		ucKey = PubWaitKey(USER_OPER_TIMEOUT);

		if (ucKey == KEYCANCEL || ucKey == NOKEY)
		{
			return ucKey; //modify by wuc 2014.4.1
		}
	
		i = ucKey - 0x30;
		if(i<0 || i>iRet)
		{
			continue;
		}
		
		break;
	}

	strcpy(glSysCtrl.stAppWifiPara.Ssid, stWifiAps[i].Ssid);
	
	//判断是否需要密码
	if(stWifiAps[i].SecMode == 0)	//无加密
	{
		glSysCtrl.stAppWifiPara.SecMode = 0;
	}
	else if(stWifiAps[i].SecMode == 1)	//WEP加密
	{
		glSysCtrl.stAppWifiPara.SecMode = 1;
		memset(ucTempBuf, 0, sizeof(ucTempBuf));
		iRet = GetWifiKey(stWifiAps[i].Ssid, stWifiAps[i].SecMode, ucTempBuf);
		if(iRet)
		{
			return iRet;
		}
		strcpy(glSysCtrl.stAppWifiPara.Wep, ucTempBuf);
	}
	else if(stWifiAps[i].SecMode == 2)	//WPA/WPA2加密 TKIP
	{
		glSysCtrl.stAppWifiPara.SecMode = 2;
		memset(ucTempBuf, 0, sizeof(ucTempBuf));
		iRet = GetWifiKey(stWifiAps[i].Ssid, stWifiAps[i].SecMode, ucTempBuf);
		if(iRet)
		{
			return iRet;
		}
		strcpy(glSysCtrl.stAppWifiPara.Wpa, ucTempBuf);
	}
	else if(stWifiAps[i].SecMode == 3)	//WPA-PSK/WPA2-PSK加密 AES
	{
		glSysCtrl.stAppWifiPara.SecMode = 3;
		memset(ucTempBuf, 0, sizeof(ucTempBuf));
		iRet = GetWifiKey(stWifiAps[i].Ssid, stWifiAps[i].SecMode, ucTempBuf);
		if(iRet)
		{
			return iRet;
		}
		strcpy(glSysCtrl.stAppWifiPara.Wpa, ucTempBuf);
	}
	else
	{
		ScrClrRect(0, 24, 319, 215);
		ScrGotoxyEx(0, 24);
		Lcdprintf("%s\n", stWifiAps[i].Ssid);
		Lcdprintf(_T("UNSUPPORTED MODE\n"));
		getkey();
		return WIFI_ERR_CANCEL;
	}
	
	return 0;
}
Beispiel #4
0
void forwardLoginDetails(){
	char url[600] = "";
	char domain[100] = "";
	char rsp[10240] = "";
	char err_msg[200] = "";
	char socketBody[2048] = "";

	//char formatted_num[15]="";
	char sample_rsp[200]="";
	unsigned char keyPressed;
	uchar serial_num[32] = "";

	APP_PARA    stPara;
	ACTIVE_NETWORK network;
	SERVER_IP ip;
	SERVER_RESPONSE sResp;

	int iFile=0,iRet=0;

	memset(&network, 0, sizeof(network));
	memset(&stPara, 0, sizeof(stPara));
	memset(&ip, 0, sizeof(ip));
	memset(&sResp, 0, sizeof(sResp));

	iFile = open("network", O_RDWR|O_CREATE);
	iRet = read(iFile, (uchar *)&network, sizeof(network));

	if(iRet==0){
		strcpy(err_msg,"Please select \nSIM and network");
		keyPressed = show_msg(err_msg);
		return;
	}
	
	loadPreferredSettings(network.szSim,network.szNetworkFilename);

	iFile = open("sim_para", O_RDWR|O_CREATE);
    iRet = read(iFile, (uchar *)&stPara, sizeof(stPara));
	if(iRet==0){
		sprintf(err_msg,"%s %s","Please configure\nsettings for\n",network.szNetworkFilename);
		keyPressed = show_msg(err_msg);
		return;
	}

	iFile = open("ip_add", O_RDWR|O_CREATE);
    iRet = read(iFile, (uchar *)&ip, sizeof(ip));
	if(iRet==0){
		sprintf(err_msg,"%s","IP address has\nnot been set");
		keyPressed = show_msg(err_msg);
		return;
	}
	

	//reads the device's serial number
	ReadSN(serial_num);


	//we build up the socket body	
	sprintf(url,"/myauthserver/login?username=%s&password=%s&serialNumber=%s","user1","user2",serial_num);


	strcpy(socketBody,"GET ");
	strcat(socketBody,url);

	strcat(socketBody," HTTP/1.1\r\n");
	strcat(socketBody,"Host: ");
	strcat(socketBody,ip.szIp);
	strcat(socketBody,"\r\n");
	strcat(socketBody,"User-Agent: SMSGH_PAX_httplib\r\n");
	strcat(socketBody,"Connection: keep-alive\r\n");
	strcat(socketBody,"Cache-Control: no-cache\r\n");
	strcat(socketBody,"Accept: */*\r\n");
	strcat(socketBody,"\r\n");

	ScrCls();
	ScrGotoxy(0, 0);

	ScrAttrSet(0);
		
	Lcdprintf("Processing...\nplease wait...");

	if(dwnld_string(ip.szIp,socketBody,rsp,err_msg,stPara)<0){ //todo: check for each int returned from method, whether -1,-2, etc


		kbflush();

		
		keyPressed = show_msg(err_msg);
		

		
	}
	else{
		
		sResp = parse_http_headers(rsp);
	
		processLoginResponse(sResp);
	}
	
}