示例#1
0
/*====================================================================================================*/
void KDWM_Loop( void )
{
  while(1) {
    LED_R_Reset();
    LED_G_Set();
    LED_B_Set();
    delay_ms(200);
    LED_R_Set();
    LED_G_Reset();
    LED_B_Set();
    delay_ms(200);
    LED_R_Set();
    LED_G_Set();
    LED_B_Reset();
    delay_ms(200);
    while(KEY_Read()) {
      LED_R_Set();
      LED_G_Set();
      LED_B_Set();
      delay_ms(200);
      LED_R_Reset();
      LED_G_Reset();
      LED_B_Reset();
      delay_ms(200);
    }
  }
}
示例#2
0
static void GetTime()
{
	char time_str[32];
	char week_str[]="星期一"
					"星期二"
					"星期三"
					"星期四"
					"星期五"
					"星期六"
					"星期日";
	
	char g_weekstr[7];
	typ_DATE_TIME  g_time;
	memset(g_weekstr,0x00,7);
	DispStr_CE(0,10,"北京时间:",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR);
	RTC_Get_DateTime(&g_time);
	memcpy(g_weekstr,week_str+(g_time.week-1)*6,6);
	DispStr_CE(0,22,g_weekstr,DISP_CENTER|DISP_NORMAL|DISP_CLRLINE);
	while(1)
	{
		RTC_Get_DateTime(&g_time);
		//memset(time_str,0x00,20);
		sprintf(time_str,"   %d-%d-%d  %02d:%02d:%02d   ",g_time.year,g_time.month,g_time.day,g_time.hour,g_time.min,g_time.sec);
		DispStr_CE(0,16,time_str,DISP_CENTER|DISP_NORMAL);
		
		if(KEY_Read()==KEY_F1)
		{
				return ;
		}
	}
}
示例#3
0
/*
   使用说明:为了得到该函数提供的功能,必须每10ms调用1次
   功能描述:按键扫描,根据状态表的设置,返回当前按键状态
   入口参数:无
   出口参数:按键编号和按键种类,格式如下
   D7 D6 D5 D4 D3 D2 D1 D0
   M1 M0 K5 K4 K3 K2 K1 K0
M1:M0 表示按键类型, 01 普通  10 长按键  11 连发按键
K5:K0 按键编号 1~63, 总共可以支持2^6 - 1 = 63个按键    
*/
u8 KEY_Scan(void)
{
	static enum KEY_ScanState KScan_CurrState = KSCAN_START;
	static u8 OldKey;
	static u8 KTimeCounter = 0;

	u8 rKeyCode = 0;		// 0 for No key press
	u8 CurrKey = KEY_Read();

	if( (CurrKey != 0) && (CurrKey == OldKey) )
	{
		if(++KTimeCounter >= KEY_StateFsmTable[KScan_CurrState].KPressTime ) 
		{
			KTimeCounter = 0;
			rKeyCode = KEY_StateFsmTable[KScan_CurrState].KPressType | CurrKey;
			KScan_CurrState = KEY_StateFsmTable[KScan_CurrState].KPressNext;
		}
	}	
	else
	{
		//   抖动或新键
		KScan_CurrState = KEY_StateFsmTable[KScan_CurrState].NoKeyNext;
		OldKey = CurrKey;
	}
	return rKeyCode;
}
示例#4
0
文件: main.c 项目: Hom-Wang/SmartIMU
int main( void )
{
  bsp_gpio_init();

  while (1) {
    LED_Toggle();
    delay_ms(100);
    while (KEY_Read()) {
      LED_Toggle();
      delay_ms(50);
    }
  }
}
示例#5
0
 int main(void)
 {
 	 char main_str[10];
	 Disp_Init(DISP_INIT_ON);//显示初始化 ,打开显示
	 if(3000 > SYS_Read_Vol())
	 {
		 DispStr_E(0,16,"电量过低",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR);
		 Sys_Delay_MS(1000);
		 Sys_Power_Sleep(2);
	 }
	 ReadParameter();//参数初始化
	 Disp_Set_Color(SET_BACK_COLOR,G_BackColor);//背景设置 浅蓝 
	 Disp_Set_Color(SET_CLEAR_COLOR,G_BackColor);//G_BackColor
	 Disp_Set_Color(SET_FONT_COLOR,G_FontColor);//前景颜色
	 Disp_Set_Color(SET_SELECT_COLOR,G_ThemeColor);//主题颜色
	 Sys_Auto_Poweroff_Set((ushort)G_AutoSleep);//30秒自动关机
	 EL_Set_Timeout((ushort)G_AutoElClose);//背光灯自动关闭时间7秒 
	 //WatchDog_Set(25);	//设置看门狗 
	 if(G_KeySound)
	 {
		 KEY_Init(KEY_AUTO_EL_ON|KEY_BEEP_KEY);//按键初始化
	 }
	 else
	 {
		 KEY_Init(KEY_AUTO_EL_ON);//按键初始化
	 }
	 //WriteParameter(E_PassWordAddr,sss,3);
	 //WriteParameter(E_PassWordLenAddr,&ss,1);
	 if(KEY_Read()==KEY_F2)
	 {
		sprintf(main_str,"%s",G_PassWord);
		DispStr_CE(0,4,main_str,DISP_CENTER|DISP_NORMAL|DISP_CLRSCR);
		delay_and_wait_key (1,EXIT_KEY_F1,120);
	 }
	 if(G_PassWordStatus)
	 {
		 RunPassWord();
	 }
	 Disp_Icon_Battery_Time_Set(1,ICON_AT_TAIL);
	 CWiFi_SetMSGCallBack((WiFiMSG_CALLBACK)WiFi_MsgDisplay);//设置回调函数
	 Open_WifiModel();
	 Sys_main();
	 return 1;
 }
示例#6
0
char sendRecords(char* data_buffer, int bufferMax)
{
	unsigned char* pdBuffer = data_buffer;		//每次上传数据指针
	unsigned char send_buffer[1024] = {0};		//每次上传数据数组
	unsigned long	db_cnt = 0;					//数据库记录数
	unsigned short	send_cnt = 0;				//上传次数
	unsigned int	send_length = 0;			//上传数组长度(每次上传最多1000)
	db_cnt = DB_count_records(0);	//返回数据库已记录的条数(包括已删除)
	
	if (!db_cnt) {
		return -1;
	}
	db_to_str(data_buffer, bufferMax, db_cnt);	//数据库记录变字符串
	send_length = db_cnt*sizeof(USER_INFO);		//要发送的数据长度
	send_cnt	= send_length/MAX_SEND_BUFFER;	//要发送数据的次数,每次最多发送1000字节
	if (send_cnt%MAX_SEND_BUFFER) {
		send_cnt++;
	}
	while (send_cnt) {
		memcpy(send_buffer, pdBuffer, MAX_SEND_BUFFER);
		if (NaNo_OK ==  CWiFi_Write(g_HandleID,/*send_buffer,strlen(send_buffer)+1*/ "abcdefg", 8)) {	//注:长度必须多一字符
			send_cnt--;
			pdBuffer += MAX_SEND_BUFFER;
			memset(send_buffer, 0x00, 1024);
		}
		else {
			return -2;
		}
		if( KEY_F1 == KEY_Read()) {	//按F1退出
			return -3;
			break;
		}
		Sys_Delay_MS(100);	//延时100毫秒
	}
	return 0;
}
示例#7
0
static void ResetPlant()
{
	uchar tempstruchar[16];
	uchar tempuchar;
	int ret;
	int tempret;
	typ_DATE_TIME  time;
	DispStr_CE(0,8,"确认要恢复出厂设置吗?",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR);
	Sys_Delay_MS(300);
	DispStr_CE(0,12,"确认请按回车  取消请按F1",DISP_CENTER|DISP_NORMAL);
	Sys_Delay_MS(300);
	DispStr_CE(0,16,"(注意:恢复出厂设置后",DISP_CENTER|DISP_NORMAL);
	DispStr_CE(0,18,"保存数据将丢失!)",DISP_CENTER|DISP_NORMAL);
	while(1)
	{
		if(KEY_Read()==KEY_F1)
		{
			DispStr_CE(0,12,"已取消恢复出厂设置!",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR);
			WaringBeep(ERR_WARNING_BEEP);
			delay_and_wait_key (DISP_ESC_DELAY_TIME,EXIT_KEY_F1,120);
			return;
		}
		if(KEY_Read()==KEY_ENTER)
		{
			break;
		}
	}	
/****************************************************/
	memset(tempstruchar,0x00,16); 
	ret=WriteParameter(E_FontColorAddr,tempstruchar,2);//前景颜色为黑色
	memset(tempstruchar,0xff,2);
	ret|=WriteParameter(E_BackColorAddr,tempstruchar,2);//背景颜色为白色
	tempstruchar[0]=0x04;
	tempstruchar[1]=0x00;
	ret|=WriteParameter(E_ThemeColorAddr,tempstruchar,2);
/*****************************************************/
	tempuchar=0;
	ret|=WriteParameter(E_LocalSiteAddr,&tempuchar,1);
/*****************************************************/
	time.year=2000;
	time.month=1;
	time.day=1;
	time.hour=0;
	time.min=0;
	time.sec=0;
	time.week=(uchar)RTC_get_week(2000,1,1);
	RTC_Set_DateTime(&time);
/******************************************************/
	tempuchar=0;
	ret|=WriteParameter(E_AutoSleepAddr,&tempuchar,1);
	tempuchar=60;
	Sys_Auto_Poweroff_Set((ushort)tempuchar);
	ret|=WriteParameter(E_AutoSleepAddr+1,&tempuchar,1);
/******************************************************/
	tempuchar=10;
	EL_Set_Timeout((ushort)tempuchar);
	ret|=WriteParameter(E_AutoElCloseAddr,&tempuchar,1);
/******************************************************/
	tempuchar=0;
	tempret=WriteParameter(E_PassWordStatusAddr,&tempuchar,1);
	ret|=tempret;
	if(!tempret)
	{
		G_PassWordStatus=tempuchar;
	}
/******************************************************/ 
	tempuchar=3;
	tempret=WriteParameter(E_PassWordLenAddr,&tempuchar,1);
	ret|=tempret;
	if(!tempret)

	{
		G_PassWordLen=tempuchar;
	}
/******************************************************/
	memcpy(tempstruchar,"123",3);
	tempret=WriteParameter(E_PassWordAddr,tempstruchar,3);
	ret|=tempret;
	if(!tempret)
	{
		memcpy(G_PassWord,tempstruchar,3);
	}
/******************************************************/
	memcpy(tempstruchar,"521",3);
	tempuchar=3;
	tempret=WriteParameter(E_SsidAddr,tempstruchar,3);
	ret|=tempret;
	if(!tempret)
	{
		memcpy(G_Ssid,tempstruchar,3);
	}
	tempret=WriteParameter(E_SsidLenAddr,&tempuchar,1);
	ret|=tempret;
	if(!tempret)
	{
		G_SsidLen=3;
	}
/*****************************************************/
	memcpy(tempstruchar,"12345678",8);
	tempuchar=8;
	tempret=WriteParameter(E_PskAddr,tempstruchar,8);
	ret|=tempret;
	if(!tempret)
	{
		memcpy(G_Psk,tempstruchar,8);
	}
	tempret=WriteParameter(E_PskLenAddr,&tempuchar,1);
	ret|=tempret;
	if(!tempret)
	{
		G_PskLen=8;
	}
/******************************************************/
	tempuchar=0;
	tempret=WriteParameter(E_ChidAddr,&tempuchar,1);
	ret|=tempret;
	if(!tempret)
	{
		G_Changle=0;
	}
/******************************************************/
	tempuchar=13;
	tempret=WriteParameter(E_TransRateAddr,&tempuchar,1);
	ret|=tempret;
	if(!tempret)
	{
		G_TransRate=13;
	}
/******************************************************/
	memcpy(tempstruchar,"192.168.1.125",13);
	tempuchar=13;
	tempret=WriteParameter(E_IpAddr,tempstruchar,13);
	ret|=tempret;
	if(!tempret)
	{
		memcpy(G_AddrIP,tempstruchar,13);
	}
	tempret=WriteParameter(E_IpLenAddr,&tempuchar,1);
	ret|=tempret;
	if(!tempret)
	{
		G_AddrIPLen=13;
	}
/******************************************************/
	memcpy(tempstruchar,"192.168.1.1",11);
	tempuchar=11;
	tempret=WriteParameter(E_GateWayAddr,tempstruchar,11);
	ret|=tempret;
	if(!tempret)
	{
		memcpy(G_GateWay,tempstruchar,11);
	}
	tempret=WriteParameter(E_GateWayLenAddr,&tempuchar,1);
	ret|=tempret;
	if(!tempret)
	{
		G_GateWayLen=11;
	}
/******************************************************/
	memcpy(tempstruchar,"255.255.255.0",13);
	tempuchar=13;
	tempret=WriteParameter(E_NetMaskAddr,tempstruchar,13);
	ret|=tempret;
	if(!tempret)
	{
		memcpy(G_NetMask,tempstruchar,13);
	}
	tempret=WriteParameter(E_NetMaskLenAddr,&tempuchar,1);
	ret|=tempret;
	if(!tempret)
	{
		G_NetMaskLen=13;
	}
/******************************************************/
	memcpy(tempstruchar,"192.168.1.100",13);
	tempuchar=13;
	tempret=WriteParameter(E_ServerIpAddr,tempstruchar,13);
	ret|=tempret;
	if(!tempret)
	{
		memcpy(G_ServerIp,tempstruchar,13);
	}
	tempret=WriteParameter(E_ServerIpLenAddr,&tempuchar,1);
	ret|=tempret;
	if(!tempret)
	{
		G_ServerIpLen=13;
	}
/******************************************************/
	memcpy(tempstruchar,"9000",4);
	tempuchar=4;
	tempret=WriteParameter(E_ServerPortAddr,tempstruchar,4);
	ret|=tempret;
	if(!tempret)
	{
		memcpy(G_ServerPort,tempstruchar,4);
	}
	tempret=WriteParameter(E_ServerPortLenAddr,&tempuchar,1);
	ret|=tempret;
	if(!tempret)
	{
		G_ServerPortLen=4;
	}
	if(ret)
	{
		DispStr_CE(0,10,"恢复出厂设置时出现错误",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR);
		WaringBeep(ERR_WARNING_BEEP);
		delay_and_wait_key (DISP_OK_DELAY_TIME,EXIT_KEY_F1,120);
	}
	else
	{
		DispStr_CE(0,10,"恢复出厂设置成功",DISP_CENTER|DISP_NORMAL|DISP_CLRSCR);
		delay_and_wait_key (DISP_OK_DELAY_TIME,EXIT_KEY_F1,120);
		WaringBeep(OK_WARNING_BEEP);
	}
	return ;
/*****************************************************/
}
示例#8
0
/***********************************************************************
		module		:	[WIFI]
		function		:	[发送数据]
  		return		:	[无]
		comment	:	[全局普通函数]
		machine		:	[EH-0818]
		language	:	[CHN]
 		keyword		:	[WIFI]
		date			:	[11/07/27]
 		author		:	[chen-zhengkai]
************************************************************************/
void sendRecords()
{
	char retStr[20] = {0};
	char temp[20] = {0};
	int templen = 0;
	//unsigned char data_buffer[1000] = {0};	//要传送的数据
	unsigned char aBuffer[200] = {0};	
	unsigned char rb8583[50] = {0};
	unsigned char send_buf[200] = {0};	//每次上传数据数组
	int send_len = 0;
	//unsigned char* pdBuffer = NULL;		//每次上传数据指针
	USER_INFO* pinfo = NULL;
	char infotemp[10] = {0};
	unsigned long	db_cnt = 0;					//数据库记录数
	unsigned short	send_cnt = 0;				//上传次数
	char* pTemp = NULL;
	char	rec_flag = 0;
	
	strcpy(retStr, "数据上传成功");
	db_cnt = DB_count_records(0);	//返回数据库已记录的条数(包括已删除)
	if (!db_cnt) {
		strcpy(retStr, "数据库无记录");
	}
	else {
		DispStr_CE(0,6,"连接上传中",DISP_CENTER|DISP_CLRSCR);
		DispStr_CE(0,8,"请耐心等待",DISP_CENTER);
		DispStr_CE(0,10,"按F1退出...",DISP_CENTER);

	//	for (send_cnt = 0; send_cnt < db_cnt; send_cnt++) {
			pinfo = (USER_INFO*)DB_jump_to_record(ATTENDANCE_INDEX, send_cnt, &rec_flag);
			if (rec_flag) {	//记录被删除
	//			continue;
			}
			dec2hex(pinfo->phyNo, 4, infotemp);
			memcpy(rb8583, infotemp,  8);		//物理卡号
			memcpy(rb8583+8, pinfo->time, 16);	//考勤时间
			atd_pack(aBuffer, rb8583, 24);
			hex2dec(aBuffer, 58, (unsigned char*)send_buf, &send_len);
			//send_len = 58;
#if 0
			if (NaNo_OK !=  CWiFi_Write(g_pHandle[0], send_buf,  send_len+1) ){	//注:长度必须多一字符
				strcpy(retStr, "数据上传失败");
				break;
			}
#else
			char tempBuf[300] = {0};
			//memcpy(tempBuf, "008A600031000008000038000001C00010000001090931201104084444444444444444444431323334353630303031393930323130333131343030313030303139390072A00000000386980701202020202020203030303030303030303030303030303030303030303030303030303030304646303130303030303130312020202020203030303030303030", sizeof("008A600031000008000038000001C00010000001090931201104084444444444444444444431323334353630303031393930323130333131343030313030303139390072A00000000386980701202020202020203030303030303030303030303030303030303030303030303030303030304646303130303030303130312020202020203030303030303030"));
			memcpy(tempBuf, "ABCDEFGHIJK", 11);
			int m = strlen(tempBuf);
			//hex2dec(tempBuf, strlen(tempBuf), (unsigned char*)send_buf,  &m);
			if (NaNo_OK !=  CWiFi_Write(g_pHandle[0], tempBuf,  11+1) ){	//注:长度必须多一字符
				strcpy(retStr, "数据上传失败");
		//		break;
			}
#endif
			if( KEY_F1 == KEY_Read()) {
				strcpy(retStr, "数据上传中断");
			//	break;
			}
			Sys_Delay_MS(100);	//延时100毫秒
	//	}
	}
	DispStr_CE(0,6,retStr,DISP_CENTER|DISP_CLRSCR);
	DispStr_CE(0,8,"按任意键返回",DISP_CENTER);
	delay_and_wait_key( 3, EXIT_KEY_ALL, 0 );
}