コード例 #1
0
ファイル: suspend_monitor.c プロジェクト: kongan/input--
static void suspend_monitor_early_suspend(struct early_suspend *h)
{
    DUMP_FUN;
    sleep_time = LED_FLASH_FAST;
    led_ctrl_en = 0;
    led_ctrl(1);
}
コード例 #2
0
ファイル: suspend_monitor.c プロジェクト: kongan/input--
static void suspend_monitor_late_resume(struct early_suspend *h)
{
    DUMP_FUN;
    sleep_time = LED_FLASH_SLOW;
    led_ctrl(0);
    led_ctrl_en = 1;
}
コード例 #3
0
ファイル: suspend_monitor.c プロジェクト: kongan/input--
static int suspend_monitor_suspend(struct device *dev)
{
    DUMP_FUN_ENTER;
    led_ctrl(0);
    return 0;

}
コード例 #4
0
ファイル: suspend_monitor.c プロジェクト: kongan/input--
static int suspend_monitor_resume(struct device *dev)
{
    DUMP_FUN_ENTER;
    suspend_times ++;
    led_ctrl(1);
    return 0;

}
コード例 #5
0
ファイル: suspend_monitor.c プロジェクト: kongan/input--
void led_tigger(void)
{
    static int status = 0;
    status = status % 2;
    if(led_ctrl_en)
        led_ctrl(status);
    if(status == 1)
        msleep(sleep_time / 10);
    else
        msleep(sleep_time);

    status++;
}
コード例 #6
0
ファイル: suspend_monitor.c プロジェクト: kongan/input--
int thread_led(void *data)
{
#if 1
    while(1)
        led_tigger();
#else
    while(1)
    {
        if(led_ctrl_en)
            led_ctrl(0);
        msleep(500);
    }
#endif
    return 0;
}
コード例 #7
0
ファイル: crane.c プロジェクト: LAPIS-Lazurite/ORIZURU
void loop(void)
{
	// ########### Main task ############
	fly_param.length = SubGHz.readData(rx_data,sizeof(rx_data));
	fly_param.current_time = millis();
	if(fly_param.length > 0)
	{
		fly_param.last_recv_time = fly_param.current_time;
		memcpy(fly_param.motor,&rx_data[7],8);
	}
	
	if((fly_param.func_mode>=STATE_ERROR) || (fly_param.func_mode < FLY_STATE_DETECTING_ZERO))
	{
		while(1){}				// error state
	}
	else
	{
		fly_param.func_mode = functions[fly_param.func_mode]();
	}
	
#ifdef DEBUG
	{
		static uint32_t last_print_time = 0;
		if(( fly_param.current_time - last_print_time) > 1000)
		{
			Serial.print(print_mode[fly_param.func_mode]);
			Serial.print(",");
			Serial.print_long(fly_param.current_time,DEC);
			Serial.print("\t");
			Serial.print_long(last_print_time,DEC);
			Serial.print("\t");
			Serial.print_long((long)fly_param.motor[0],DEC);
			Serial.print("\t");
			Serial.print_long((long)fly_param.motor[1],DEC);
			Serial.print("\t");
			Serial.print_long((long)fly_param.motor[2],DEC);
			Serial.print("\t");
			Serial.println_long((long)fly_param.motor[3],DEC);
			last_print_time = fly_param.current_time;
		}
	}
#endif
	led_ctrl();
	wdt_clear();
}
コード例 #8
0
int secure_main(void)
{
	unsigned int csu_reg, i;
	for(csu_reg = 0x021C0000; csu_reg < 0x021C00A0; csu_reg = csu_reg + 4)
		__REG(csu_reg) = 0x00ff00ff; //0x00330033 for Peripheral access policy
		
	// for CORAM secure policy setting
	//csu_reg = 0x021C0000 + 0x**;
	//__REG(csu_reg) = 0x00330033;
	
	// for OCRAM secure status setting
	csu_reg = 0x020e0028;
	__REG(csu_reg) = 0x00003810;
	
	// set for non-secure can access some coprocessor reg
	CP15_SET_NSACR(0x00073fff);
	CP15_SET_CPACR(0x0fffffff);
	
	// set for SCR
	CP15_SET_SCR(0b110000);

	//(*((void(*)(void))0x0090b020))();
	// copy uboot from iram to sadram
	char* dest = (char*)0x27800000;
	char* src  = (char*)0x0090b000;
	for(i=0; i<160096; i++)
		*dest++ = *src++;
	
	// Install monitor
	monitorInit();
	
	while(1) {
		led_ctrl(LED_ON);
		asm volatile ("smc #0\n\t");
	}
	
	return 0;
}
コード例 #9
0
ファイル: client.c プロジェクト: dqwang/itertk-001
/*
case 1: server configuration(ip , port) updated
case 2: server offline(No heartbeat)
*/
int client_reconnect(void)
{
	static int counter =0;
	if (g_sockfd_client > 0){
		g_sockfd_client_status = SOCKFD_CLIENT_NULL;
		close(g_sockfd_client);
		g_sockfd_client = -1;		
	}
	led_ctrl(LED_D3_ALARM_SERVER_STATUS, LED_OFF);
	while (FAILURE == client_connect_server()){
		if (g_sockfd_client > 0){
			g_sockfd_client_status = SOCKFD_CLIENT_NULL;
			close(g_sockfd_client);
			g_sockfd_client = -1;
			
		}
		sys_log(FUNC, LOG_WARN, "Reconnect duration %dS:  counter: %d",CLIENT_RECONNECT_DURATION, ++counter);
		sleep(CLIENT_RECONNECT_DURATION);
			
	}	

	return SUCCESS;
}
コード例 #10
0
ファイル: bluetooth_test.c プロジェクト: 296791897/keilprj
void connect_uart(void)
{    
    int i,j;
    int ret,len,total_ok=0, total_error=0;
    int error_count = 1, error_count2 = 2, error_flag = 0;  
    int Ten_thousand = 0;
    int true_count = 1;
    unsigned int count = 0;
    char asc[100];
    uint8_t  buffer[Recieve_Nbyte];
    uint8_t  count_buffer[4];
    unsigned int get_data = 0;


    lcd_clrscr();
    lcd_disp_string(0, 0, "      直连模式    ");
	lcd_disp_hline(0, 13, 128);  
    lcd_disp_string(30,16, "蓝牙广播中...");
    lcd_disp_string(36,36, "等待连接");
    serial_write(CONFIG_BT_SERIAL_NUM, "AT+ADV\r\n", sizeof("AT+ADV\r\n"));//开启广播
    serial_read(CONFIG_BT_SERIAL_NUM, buffer, 300, 300);
    lcd_clrscr();
    if (strcmp(buffer, "OK\r\nCONNECTED\r\n") == 0) {
        lcd_disp_string(26, 26, "蓝牙连接成功");
        led_ctrl(1, 1);
        mdelay(1000);
    }
    else {
        lcd_disp_string(26, 26, "蓝牙连接失败");
        led_ctrl(1, 0);
        mdelay(1000);
        return 0;
    }
          
restart:                 
        lcd_clrscr();
        lcd_disp_string( 14, 0, "数据发送接收测试" );
        lcd_disp_hline(0, 13, 128);  
        //lcd_disp_string( 0, 16, "接收发送的数据:" );
        lcd_disp_string( 0, 16, "数据接收发送的结果:" );
        memset( buffer, 0, sizeof(buffer));
        len = 0;     
        
        while(1) {
            
                if ((ret=serial_read(CONFIG_BT_SERIAL_NUM, buffer, Recieve_Nbyte, 200 )) > 0 ){

                    printf("ret: %d \n", ret);
                     for (i=0; i<Recieve_Nbyte; i++) {
                        printf(" %d ", buffer[i]);
                    }
                    printf("\n");
                    
                    for (i=0; i<Recieve_Nbyte; i++) {
                           if (buffer[i] == 0x0e) {
                               true_count++;
                           } 
                           else {
                               true_count = 1;
                           }
                           if ( true_count == 40) goto out;
                    }
               
                    lcd_disp_string( 30, 40, "                       " );

                    for (i=0; i<(Recieve_Nbyte-4); i++) {
                        if (buffer[i+4] != i) {
                            error_flag = 1;
                            dprintf("\n ----error1:%d ----\n", error_count++);
                            for (j=0; j<Recieve_Nbyte; j++)
                                dprintf(" %d ", buffer[j]);
                            dprintf("\n");
                        }    
                    }

                    memcpy(count_buffer, buffer, 4);
                    bcd2asc(count_buffer, 8, asc, 1);
                    get_data = strtoul(asc,NULL,10);
                    dprintf("\n -get_data %d ", get_data);
                    dprintf("\n  -count %d ",  count);
                    dprintf("\n ret %d ",  ret);
                    if (get_data !=  count) {
                         error_flag = 1;
                         dprintf("\n error2:%d \n", error_count2++);
                    }
                    count ++;
                    serial_write(CONFIG_BT_SERIAL_NUM, buffer, Recieve_Nbyte);
              
out:                     
                    if (true_count == 40) {
                        if (error_flag == 0) {
                            lcd_disp_string( 30, 40, "数据收发成功!!!" );
                            total_ok++;
                        }
                        else {
                            lcd_disp_string( 30, 40, "数据收发失败!!!" );
                            total_error++;
                        }
                        count = 0;
                    }
            
                 }

           
                if (ret < 0) {
                    lcd_clrscr();
                    lcd_disp_string(6, 30, "蓝牙等待断开连接...");
                    serial_write(CONFIG_BT_SERIAL_NUM, "AT+DISC\r\n" , sizeof("AT+DISC\r\n" ));//断开连接
            		serial_read(CONFIG_BT_SERIAL_NUM, buffer, 300, 300);
                    serial_clrbuf(CONFIG_BT_SERIAL_NUM, 1, 1); 
                    lcd_clrscr();
                    lcd_disp_string(26, 30, "蓝牙已断开连接");
                    led_ctrl(1, 0);
                    mdelay(1000);
                    return;
                } 
#if 0         
            if((ret=serial_read(CONFIG_BT_SERIAL_NUM, buffer + len, 1, 200 )) > 0 ){
                lcd_disp_string( 0, 30, buffer);
                serial_write(CONFIG_BT_SERIAL_NUM, buffer + len, 1);
                len ++;
            }
           
            if (ret < 0) {
                lcd_clrscr();
                lcd_disp_string(6, 30, "蓝牙等待断开连接...");
                serial_write(CONFIG_BT_SERIAL_NUM, "AT+DISC\r\n" , sizeof("AT+DISC\r\n" ));//断开连接
				serial_read(CONFIG_BT_SERIAL_NUM, buffer, 300, 300);
                serial_clrbuf(CONFIG_BT_SERIAL_NUM, 1, 1); 
                lcd_clrscr();
                lcd_disp_string(26, 30, "蓝牙已断开连接");
                mdelay(1000);
                return;
            } 

            if(len >= 16*3){
                goto restart;
            }     
            
           // if ( kb_get_key(1000) == KEY_9) {
            //    serial_write(CONFIG_BT_SERIAL_NUM, &send_data, 1);      
              //  send_data++;
           // }
#endif
       }

     return 0;
}
コード例 #11
0
ファイル: client.c プロジェクト: dqwang/itertk-001
void client_process(void)
{
	fd_set readfds;		
	int ret;
	int num_read_from_socket;
	int num_to_send;	
	int res = -1;
	struct timeval tv;

	sys_log(FUNC, LOG_MSG, "start");
	while (1)
	{			
		heartbeat_timeout ++;
		sys_log(FUNC, LOG_DBG, "heartbeat_timeout = %d heartbeat_s=%d",heartbeat_timeout, heartbeat_s);
		if (heartbeat_timeout > heartbeat_s){
			sys_log(FUNC, LOG_ERR, "heartbeat timeout  --> reconnect");
			set_heartbeat(HEARTBEAT_OFFLINE,  HEARTBEAT_TIMEOUT);			
		}
		sleep(1);		
		if (g_reconnect_flag == RECONNECT_ON || g_reconnect_flag == HEARTBEAT_OFFLINE){
			if (SUCCESS == client_reconnect()){
				g_reconnect_flag = RECONNECT_OFF;	
			}			
		}
		if (g_sockfd_client <=0){
			//sys_log(FUNC, LOG_WARN, "g_sockfd_client");
			g_reconnect_flag = RECONNECT_ON;
			continue;
		}	
		
		FD_ZERO(&readfds);
		FD_SET(g_sockfd_client, &readfds);
		tv.tv_sec = 0;
		tv.tv_usec = 1000;		

		res = select(g_sockfd_client + 1, &readfds, NULL, NULL, &tv);
		if (res < 0){
			continue;
		}else if (res > 0){
			if (FD_ISSET(g_sockfd_client, &readfds))
				num_read_from_socket = read(g_sockfd_client, buf, 100);
		}else{
			continue;
		}
		
		if(num_read_from_socket <= 0){
			continue;
		}
		sys_log(FUNC, LOG_WARN, "recv %d bytes!\n",num_read_from_socket);
		printf_hex(buf,num_read_from_socket);		

		if (check_head(buf) == -1 ){
			continue;
		}		

		g_sockfd_client_status = SOCKFD_CLIENT_OK;
		
		switch (buf[2]){
			case PROTOCOL_GET_DEVICE_ATTR:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_GET_DEVICE_ATTR");
				
				if(!check_for_get_device_attr(buf,num_read_from_socket))
				{
					num_to_send = make_ack_get_device_attr(buf_send);
					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send)
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
				break;
			case PROTOCOL_SET_DEVICE_ATTR:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_SET_DEVICE_ATTR");
				if(!check_for_set_device_attr(buf,num_read_from_socket))
				{
					/*todo set device attr
						传感器有好几类,此处只处理报警传感器
					*/
					set_alarmin_device_attr(buf);
				
					num_to_send = make_ack_set_device_attr(buf_send);
					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send)
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
				break;
			case PROTOCOL_GET_ALARM_STATUS:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_GET_ALARM_STATUS");
				if(!check_for_get_alarm_status(buf,num_read_from_socket))
				{					
					/*alarmin*/
					
					num_to_send = make_ack_get_alarm_status(buf_send, g_alarm_in);
					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send) 
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
				break;
			case PROTOCOL_GET_TIME:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_GET_TIME");
				/*TODO ?*/
				
				break;
			case PROTOCOL_SET_TIME:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_SET_TIME");				
				if(!check_for_set_time(buf,num_read_from_socket))
				{
					/* TODO */
					/*set time*/
				
					num_to_send = make_ack_set_time(buf_send);
					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send)
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
				break;
			case PROTOCOL_SET_HEARTBEAT:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_SET_HEARTBEAT");
				if(!check_for_set_heartbeat(buf,num_read_from_socket))
				{
					num_to_send = make_ack_set_heartbeat(buf_send,heartbeat_s);
					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send)
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);

					set_heartbeat(HEARTBEAT_ONLINE, buf[4]);	
					led_ctrl(LED_D3_ALARM_SERVER_STATUS, LED_ON);
				}
				break;
			case PROTOCOL_GET_UART_QTY:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_GET_UART_QTY");
				if(!check_for_get_uart_qty(buf,num_read_from_socket))
				{					
					num_to_send = make_ack_get_uart_qty(buf_send);
					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send) 
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}

				break;
			case PROTOCOL_GET_UART_ATTR:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_GET_UART_ATTR");
				if (!check_for_get_uart_attr(buf, num_read_from_socket)){
					num_to_send = make_ack_get_uart_attr(buf_send, buf);
					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send) 
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
				
				break;
			case PROTOCOL_SET_UART_ATTR:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_SET_UART_ATTR");
				if (!check_for_set_uart_attr(buf, num_read_from_socket)){
					num_to_send=make_ack_set_uart_attr(buf_send,buf);
					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send) 
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
				break;
			case PROTOCOL_QUERY_UART_SENDBUF:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_QUERY_UART_SENDBUF");
				if (!check_for_query_uart_sendbuf(buf, num_read_from_socket)){
					num_to_send = make_ack_query_uart_sendbuf(buf_send);

					/*TODO :buf*/

					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send) 
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
			break;

			case PROTOCOL_UART_SEND_DATA:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_UART_SEND_DATA");
				if (!check_for_uart_send_data(buf, num_read_from_socket)){
					num_to_send = make_ack_uart_send_data(buf_send);

					/*TODO*/

					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send) 
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
			break;
			case PROTOCOL_SET_UART_RECV_ATTR:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_SET_UART_RECV_ATTR");
				if (!check_for_set_uart_recv_attr(buf, num_read_from_socket)){
					
					/*TODO*/

					
				}
			break;

			case PROTOCOL_QUERY_UART_RECV_DATA:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_QUERY_UART_RECV_DATA");
				if (!check_for_query_uart_recv_data(buf, num_read_from_socket)){
					num_to_send = make_ack_query_uart_recv_data(buf_send);

					/*TODO*/

					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send) 
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
			break;

			case PROTOCOL_GET_IO_NUM:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_GET_IO_NUM");
				if (!check_for_get_io_num(buf, num_read_from_socket)){
					num_to_send = make_ack_get_io_num(buf_send);

					/*TODO*/

					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send) 
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
			break;

			case PROTOCOL_SET_IO:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_SET_IO");
				if (!check_for_set_io(buf, num_read_from_socket)){
					
					/*TODO*/

					set_io_out(buf);					
				}
			break;

			case PROTOCOL_GET_IO_STATUS:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_GET_IO_STATUS");
				if (!check_for_get_io_status(buf, num_read_from_socket)){
								
					num_to_send = make_ack_get_io_status(buf_send, buf);


					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send) 
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
			break;

			case PROTOCOL_GET_TEMP_NUM:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_GET_TEMP_NUM");
				if (!check_for_get_temp_num(buf, num_read_from_socket)){
								
					num_to_send = make_ack_get_temp_num(buf_send);


					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send) 
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
			break;

			case PROTOCOL_SET_TEMP:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_SET_TEMP");

				set_temp(buf);
			
			break;

			case PROTOCOL_GET_TEMP_STATUS:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_GET_TEMP_STATUS");
				if (!check_for_get_temp_status(buf, num_read_from_socket)){
								
					num_to_send = make_ack_get_temp_status(buf_send);


					ret = write(g_sockfd_client, buf_send, num_to_send);
					if(ret != num_to_send) 
						printf("write socket error!\n");
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
			break;

#if 0
			case PROTOCOL_GET_SENSOR_TYPE:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_GET_SENSOR_TYPE");
				if (!check_for_get_sensor_type(buf, num_read_from_socket)){
					num_to_send = make_ack_get_sensor_type(buf_send);

					ret = write(g_sockfd_client, buf_send, num_to_send);
					if (ret != num_to_send){
						printf("write socket error!\n");
					}
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
			break;

			case PROTOCOL_GET_SENSOR_DATA:
				sys_log(FUNC, LOG_DBG, "PROTOCOL_GET_SENSOR_DATA");
				if (!check_for_get_sensor_data(buf, num_read_from_socket)){
					num_to_send = make_ack_get_sensor_data(buf_send);

					ret = write(g_sockfd_client, buf_send, num_to_send);
					if (ret != num_to_send){
						printf("write socket error!\n");
					}
					sys_log(FUNC, LOG_DBG, "send %d bytes", num_to_send);
					printf_hex(buf_send, num_to_send);
				}
			break;
#endif			
			default:
				sys_log(FUNC, LOG_ERR, "wrong cmd from server ");
				break;				
		}
		
	}	
}