Example #1
0
File: at.c Project: EATtomatoes/SiK
static void
at_s(void)
{
	__pdata uint8_t		sreg;

	// get the register number first
	idx = 3;
	at_parse_number();
        sreg = at_num;
	// validate the selected sreg
	if (sreg >= PARAM_MAX) {
		at_error();
		return;
	}

	switch (at_cmd[idx]) {
	case '?':
		at_num = param_get(sreg);
		printf("%lu\n", at_num);
		return;

	case '=':
		if (sreg > 0) {
			idx++;
			at_parse_number();
			if (param_set(sreg, at_num)) {
				at_ok();
				return;
			}
		}
		break;
	}
	at_error();
}
Example #2
0
File: at.c Project: EATtomatoes/SiK
static void
at_plus(void)
{
#ifdef BOARD_rfd900a
	__pdata uint8_t		creg;

	// get the register number first
	idx = 4;
	at_parse_number();
        creg = at_num;

	switch (at_cmd[3])
	{
	case 'P': // AT+P=x set power level pwm to x immediately
		if (at_cmd[4] != '=')
		{
			break;
		}
		idx = 5;
		at_parse_number();
		PCA0CPH3 = at_num & 0xFF;
		radio_set_diversity(false);
		at_ok();
		return;
	case 'C': // AT+Cx=y write calibration value
		switch (at_cmd[idx])
		{
		case '?':
			at_num = calibration_get(creg);
			printf("%lu\n",at_num);
			return;
		case '=':
			idx++;
			at_parse_number();
			if (calibration_set(creg, at_num&0xFF))
			{
				at_ok();
			} else {
				at_error();
			}
			return;
		}
		break;
	case 'L': // AT+L lock bootloader area if all calibrations written
		if (calibration_lock())
		{
			at_ok();
		} else {
			at_error();
		}
		return;
	}
#endif //BOARD_rfd900a
	at_error();
}
Example #3
0
File: at.c Project: EATtomatoes/SiK
static void
at_ampersand(void)
{
	switch (at_cmd[3]) {
	case 'F':
		param_default();
		at_ok();
		break;
	case 'W':
		param_save();
		at_ok();
		break;

	case 'U':
		if (!strcmp(at_cmd + 4, "PDATE")) {
			// force a flash error
			volatile char x = *(__code volatile char *)0xfc00;
			for (;;)
				;
		}
		at_error();
		break;

	case 'P':
		tdm_change_phase();
		break;

	case 'T':
		// enable test modes
		if (!strcmp(at_cmd + 4, "")) {
			// disable all tests
			at_testmode = 0;
		} else if (!strcmp(at_cmd + 4, "=RSSI")) {
			// display RSSI stats
			at_testmode ^= AT_TEST_RSSI;
		} else if (!strcmp(at_cmd + 4, "=TDM")) {
			// display TDM debug
			at_testmode ^= AT_TEST_TDM;
		} else {
			at_error();
		}
		break;
		
	default:
		at_error();
		break;
	}
}
Example #4
0
File: at.c Project: Dronecode/SiK
void
at_command(void)
{
	// require a command with the AT prefix
	if (at_cmd_ready) {
		if ((at_cmd_len >= 2) && (at_cmd[0] == 'R') && (at_cmd[1] == 'T')) {
			// remote AT command - send it to the tdm
			// system to send to the remote radio
			tdm_remote_at();
			at_cmd_len = 0;
			at_cmd_ready = false;
			return;
		}
		
		if ((at_cmd_len >= 2) && (at_cmd[0] == 'A') && (at_cmd[1] == 'T')) {

			// look at the next byte to determine what to do
			switch (at_cmd[2]) {
			case '\0':		// no command -> OK
				at_ok();
				break;
			case '&':
				at_ampersand();
				break;
			case '+':
				at_plus();
				break;
			case 'I':
				at_i();
				break;
			case 'P':
				at_p();
				break;
			case 'O':		// O -> go online (exit command mode)
				at_plus_counter = ATP_COUNT_1S;
				at_mode_active = 0;
				break;
			case 'S':
				at_s();
				break;
			case 'Z':
				// generate a software reset
				RSTSRC |= (1 << 4);
				for (;;)
					;

			default:
				at_error();
			}
		}

		// unlock the command buffer
		at_cmd_len = 0;
		at_cmd_ready = false;
	}
}
Example #5
0
File: at.c Project: EATtomatoes/SiK
static void
at_i(void)
{
	switch (at_cmd[3]) {
	case '\0':
	case '0':
		printf("%s\n", g_banner_string);
		return;
	case '1':
		printf("%s\n", g_version_string);
		return;
	case '2':
		printf("%u\n", BOARD_ID);
		break;
	case '3':
		printf("%u\n", g_board_frequency);
		break;
	case '4':
		printf("%u\n", g_board_bl_version);
		return;
	case '5': {
		register enum ParamID id;
                register uint8_t start = 0;
                register uint8_t end = PARAM_MAX-1;
                if (at_cmd[4] == ':' && isdigit(at_cmd[5])) {
                        idx = 5;
                        at_parse_number();
                        start = at_num;
                        if (at_cmd[idx] == ':' && isdigit(at_cmd[idx+1])) {
                                idx++;
                                at_parse_number();
                                end = at_num;                                
                        }
                }
		// convenient way of showing all parameters
		for (id = start; id <= end; id++) {
			printf("S%u:%s=%lu\n", 
			       (unsigned)id, 
			       param_name(id), 
			       (unsigned long)param_get(id));
		}
		return;
	}
	case '6':
		tdm_report_timing();
		return;
	case '7':
		tdm_show_rssi();
		return;
	default:
		at_error();
		return;
	}
}
Example #6
0
void corange_init(const char* core_assets_path) {
  
  /* Attach signal handlers */
  signal(SIGABRT, corange_signal);
  signal(SIGFPE, corange_signal);
  signal(SIGILL, corange_signal);
  signal(SIGINT, corange_signal);
  signal(SIGSEGV, corange_signal);
  signal(SIGTERM, corange_signal);
  
  logout = fopen("output.log", "w");
  
  at_error(corange_error);
  at_warning(corange_warning);
  at_debug(corange_debug);
  
  /* Starting Corange */
  debug("Starting Corange...");
  
  /* Asset Manager */
  debug("Creating Asset Manager...");
  debug("Core Assets At '%s' ...", core_assets_path);

  asset_init();
  asset_add_path_variable(P("$CORANGE"), P(core_assets_path));
  
  asset_handler(renderable, "bmf", bmf_load_file, renderable_delete);
  asset_handler(renderable, "obj", obj_load_file, renderable_delete);
  asset_handler(renderable, "smd", smd_load_file, renderable_delete);
  asset_handler(renderable, "ply", ply_load_file, renderable_delete);
  asset_handler(skeleton, "skl", skl_load_file, skeleton_delete);
  asset_handler(animation, "ani", ani_load_file, animation_delete);
  asset_handler(cmesh, "col", col_load_file, cmesh_delete);
  asset_handler(terrain, "raw", raw_load_file, terrain_delete);
  
  asset_handler(texture, "bmp", bmp_load_file, texture_delete);
  asset_handler(texture, "tga", tga_load_file, texture_delete);
  asset_handler(texture, "dds", dds_load_file, texture_delete);
  asset_handler(texture, "lut", lut_load_file, texture_delete);
  asset_handler(texture, "acv", acv_load_file, texture_delete);
  
  asset_handler(shader, "vs" , vs_load_file, shader_delete);
  asset_handler(shader, "fs" , fs_load_file, shader_delete);
  asset_handler(shader, "gs" , gs_load_file, shader_delete);
  asset_handler(shader, "tcs" , tcs_load_file, shader_delete);
  asset_handler(shader, "tes" , tes_load_file, shader_delete);
  
  asset_handler(config, "cfg", cfg_load_file, config_delete);
  asset_handler(lang, "lang", lang_load_file, lang_delete);
  asset_handler(font, "fnt", font_load_file, font_delete);

  asset_handler(material, "mat", mat_load_file, material_delete);
  asset_handler(effect, "effect" , effect_load_file, effect_delete);
  
  asset_handler(sound, "wav", wav_load_file, sound_delete);
  asset_handler(music, "ogg", ogg_load_file, music_delete);
  asset_handler(music, "mp3", mp3_load_file, music_delete);
  
  /* Entity Manager */
  debug("Creating Entity Manager...");
  
  entity_init();
  
  entity_handler(static_object, static_object_new, static_object_delete);
  entity_handler(animated_object, animated_object_new, animated_object_delete);
  entity_handler(physics_object, physics_object_new, physics_object_delete);
  entity_handler(instance_object, instance_object_new, instance_object_delete);
  
  entity_handler(camera, camera_new, camera_delete);
  entity_handler(light, light_new, light_delete);
  entity_handler(landscape, landscape_new, landscape_delete);
  entity_handler(particles, particles_new, particles_delete);
  
  /* UI Manager */
  debug("Creating UI Manager...");
  
  ui_init();
  
  ui_handler(ui_rectangle, ui_rectangle_new, ui_rectangle_delete, ui_rectangle_event, ui_rectangle_update, ui_rectangle_render);
  ui_handler(ui_text, ui_text_new, ui_text_delete, ui_text_event, ui_text_update, ui_text_render);
  ui_handler(ui_spinner, ui_spinner_new, ui_spinner_delete, ui_spinner_event, ui_spinner_update, ui_spinner_render);
  ui_handler(ui_button, ui_button_new, ui_button_delete, ui_button_event, ui_button_update, ui_button_render);
  ui_handler(ui_textbox, ui_textbox_new, ui_textbox_delete, ui_textbox_event, ui_textbox_update, ui_textbox_render);
  ui_handler(ui_browser, ui_browser_new, ui_browser_delete, ui_browser_event, ui_browser_update, ui_browser_render);
  ui_handler(ui_toast, ui_toast_new, ui_toast_delete, ui_toast_event, ui_toast_update, ui_toast_render);
  ui_handler(ui_dialog, ui_dialog_new, ui_dialog_delete, ui_dialog_event, ui_dialog_update, ui_dialog_render);
  ui_handler(ui_listbox, ui_listbox_new, ui_listbox_delete, ui_listbox_event, ui_listbox_update, ui_listbox_render);
  ui_handler(ui_option, ui_option_new, ui_option_delete, ui_option_event, ui_option_update, ui_option_render);
  ui_handler(ui_slider, ui_slider_new, ui_slider_delete, ui_slider_event, ui_slider_update, ui_slider_render);
  
  /* Graphics Manager */
  debug("Creating Graphics Manager...");
  graphics_init();
  
  /* Audio Manager */
  debug("Creating Audio Manager...");
  audio_init();
  
  /* Joystick Manager */
  debug("Creating Joystick Manager...");
  joystick_init();
  
  /* Network Manager */
  debug("Creating Network Manager...");
  net_init();
  
  debug("Finished!");
}