Пример #1
0
extern "C" void ICACHE_FLASH_ATTR user_init(void)
{
	do_global_ctors();
	// Configure the UART
	uart_init(UART_BITRATE, UART_BITRATE);

	DPRINT("ESP8266 platform starting...");
//	Config::instance().zero();
	Config::I().errno(ERRNO_OK);

	if(!Config::I().wifi_configured())
		reset_wifi_configs();

//	startudp();

	os_timer_disarm(&WiFiCheck);
	Config::I().errno(ERRNO_UNDEFINED);
	os_timer_setfn(&WiFiCheck, (os_timer_func_t *)wifi_check_ip, NULL);
	os_timer_arm(&WiFiCheck, 1000, 0);

	RGBLED::I();
	test_flash();

	PM;
//	HTTPD::instance();
}
Пример #2
0
void configure_main(void) {

	uint8_t buffer[10];

	config_idx = -1;

	cph_config = cph_config_init();

	while (1) {
		TRACE("\r\n\r\nMain Menu\r\n");
		TRACE("==============\r\n");

		for (int i=0;i<G_CONFIG_COUNT - 1;i++) {
			TRACE("%d) ", i);
			configure_print_dwt_config(&g_dwt_configs[i]);
			TRACE("\r\n");
		}

		TRACE("U) User defined\r\n");
		TRACE("P) Set parameters\r\n");
		TRACE("A) Exit and run as ANCHOR\r\n");
		TRACE("C) Exit and run as COORDINATOR\r\n");
		TRACE("T) Exit and run as TAG\r\n");
		TRACE("L) Exit and run as LISTENER\r\n");
		TRACE("S) Exit and run as SENDER\r\n");
		TRACE("D) Exit and run with compiled DEFAULTS\r\n");
		TRACE("F) Test flash\r\n");

		TRACE("\r\nCurrent Config : ");
		configure_print_dwt_config(&cph_config->dwt_config);
		TRACE("\r\nNew Config     : ");
		if (config_idx == -1) {
			TRACE("none selected");
		}
		else {
			configure_print_dwt_config(&g_dwt_configs[config_idx]);
		}
		TRACE("\r\n");

		TRACE("\r\n> ");

		choice = getchar() & 0xFF;
		TRACE("%c - ", choice);

		if (choice >= '0' && choice <= ('0' + G_CONFIG_COUNT - 1 - 1)) {
			TRACE("VALID\r\n");
			config_idx = choice - '0';
		}
		else if (choice == 'u' || choice == 'U') {
			configure_user_defined();
		}
		else if (choice == 'p' || choice == 'P') {
			configure_parameters();
		}
		else if (choice == 'a' || choice == 'A') {
			cph_config->mode = CPH_MODE_ANCHOR;
			TRACE("Exiting as CPH_MODE_ANCHOR\r\n");
			break;
		}
		else if (choice == 'c' || choice == 'C') {
			cph_config->mode = CPH_MODE_COORD;
			TRACE("Exiting as CPH_MODE_COORD\r\n");
			break;
		}
		else if (choice == 't' || choice == 'T') {
			cph_config->mode = CPH_MODE_TAG;
			TRACE("Exiting as CPH_MODE_TAG\r\n");
			break;
		}
		else if (choice == 'l' || choice == 'L') {
			cph_config->mode = CPH_MODE_LISTENER;
			TRACE("Exiting as CPH_MODE_LISTENER\r\n");
			break;
		}
		else if (choice == 's' || choice == 'S') {
			cph_config->mode = CPH_MODE_SENDER;
			TRACE("Exiting as CPH_MODE_SENDER\r\n");
			break;
		}
		else if (choice == 'd' || choice == 'D') {
			memset(cph_config, 0, sizeof(cph_config_t));
			cph_config_write();
			TRACE("Exiting as compiled DEFAULT\r\n");
			break;
		}
		else if (choice == 'f' || choice == 'F') {
			test_flash();
		}
		else {
			TRACE("NOT VALID\r\n");
		}
	};

	TRACE("\r\n");

	TRACE("Writing config...");
	if (config_idx >= 0) {
		memcpy(&cph_config->dwt_config, &g_dwt_configs[config_idx], sizeof(dwt_config_t));
	}
	cph_config_write();
	TRACE("done.\r\n");

	TRACE("Starting in ");
	for (int i=3;i>0;i--) {
		TRACE("%d ", i);
		cph_millis_delay(1000);
	}
	TRACE("\r\n");
}
Пример #3
0
static void * case_thread(DirectThread *thread, void *arg)
{
	int ret;
	case_t *caseP = arg;
	bool passflg = false;
	FILE *fp = NULL;
	char command[100];
	struct stat st;
	bool iio_enable;
	
	iio_enable = is_iio_enable();
	printf("iio_enable = %d\n", iio_enable);

	if(caseP->type == 0)
	{
		switch(caseP->index)
		{
			//mem
			case mem:
				sprintf(command, "memtester %s 1 2 > /memerr.log 1> /dev/null", caseP->nod_path);
				// printf("command = %s\n", command);
				ret = system(command);
				// printf("mem ret = %d\n", ret);
				if(!ret && stat("/memerr.log", &st) >= 0) //获取文件信息
				{
					if(st.st_size == 0)
					{
						passflg = true;
					}
				}
				break;
			case ddrsize:
				passflg = test_ddrsize(caseP);
				break;	
			//flash	
			case flash:;
				passflg = test_flash(caseP);
				break;
			//wifi
			case wifi:
				passflg = test_wifi(caseP);
				break;
			case bt:
				passflg = test_bt(caseP);
				break;
			//gsensor	
			case gsensor:
				if(!iio_enable)
					passflg = test_gsensor(caseP);
				else
					passflg = test_iio(caseP, info);
				break;
			case gyro:
				if(!iio_enable)
					passflg = false;
				else
					passflg = test_iio(caseP, info + 1);
				break;
			case comp:
				if(!iio_enable)
					passflg = false;
				else
					passflg = test_iio(caseP, info + 2);
				break;
			case lightsensor:
				passflg = test_lightsensor(caseP);
				break;
			//camera	
			// case camera:
				// passflg = wait_dev_plugin(caseP->nod_path);
				// break;
			//rtc
			case rtc:
				passflg = test_rtc(caseP);
				break;
			case gps:
				passflg = test_gps(caseP);
				break;
			case uart:
				passflg = test_uart(caseP);
				break;
			case ethernet:
				passflg = test_ethernet(caseP);
				break;
		}
	}
	else if(caseP->type == 1)
	{
		switch(caseP->index)
		{
			//sdcard
			case 0:
				passflg = test_mmc(caseP);
				break;
			//usb
			case 1:
				passflg = test_usb(caseP);
				break;
			case 2:
				passflg = test_pc(caseP);
				break;
			//hdmi
			case 3:
				wait_nod_state(caseP, &hdmi_flg);
				//test_hdmi(caseP, &hdmi_flg);
				break;
			//headphone
			case 4:
				wait_nod_state(caseP, &headphone_flg);
				break;
			//key
			case 5:
				passflg = test_key(caseP);
				break;
			//onoff
			case 6:
				passflg = test_key_onff(caseP);
				break;
			//charege
			case 7:
				passflg = test_charge(caseP);
				break;
			//mtv
			case 8:
				passflg = test_mtv(caseP);
				break;
		}
	}
	
	draw_result(caseP, passflg);
}