void LoadSettings() {
    unsigned int addr = 0;    
    EEprom_read(&addr, (unsigned char *) &Config, sizeof (Config));
    if (!(Config.Version == CONFIG_SCHEMA_VERSION)) {
        FactoryDefault();
        SaveSettings();
    }
}
示例#2
0
void main(void) {
    signed char ret = 0;
    signed char lastMenu = 0;
    char pnum = 0;

    SetupIO();
    MOTOR_FORWARD = 0;
    MOTOR_REVERSE = 0;

    Move_shifted_position.ul = 0;
    Move_position[0].ul = 0;
    Move_position[1].ul = 0;
    //PID_SetPoint = 0;
    char idx;
    for (idx = 0; idx < 16; idx++) RotaryDetentIntervals[idx] = 0xFF;

    //LoadSettings();
    FactoryDefault();

    SetupHardware();

    LCD_PowerUp();
    LCD_ClearDisplay();

    LCD_PrintString("CINEFLUX ORBIT\0");
    LCD_SetPosition(1,0);    
    LCD_PrintString(VER);
    Wait_ms(2000);

    const char *COMMAND_0 = "ORBIT MODE\0";
    const char *COMMAND_1 = "WAYPOINT MODE\0";
    const char *COMMAND_3 = "RUN PRESET\0";
    const char *COMMAND_2 = "REALTIME MODE\0";
    const char *COMMAND_4 = "BATTERY VOLTAGE\0";
    const char *COMMAND_5 = "GO TO SLEEP\0";
    const char *COMMAND_6 = "EXTERNAL CTRL MODE\0";
    const char*CommandMenu[7];
    CommandMenu[0] = COMMAND_0;
    CommandMenu[1] = COMMAND_1;
    CommandMenu[2] = COMMAND_2;
    CommandMenu[3] = COMMAND_3;
    CommandMenu[4] = COMMAND_4;
    CommandMenu[5] = COMMAND_5;
    CommandMenu[6] = COMMAND_6;

    bFollowMode = 1;
    LCD_ClearDisplay();
    LCD_PrintString("MOVE TO ZERO DEGREES\0");
    LCD_SetPosition(1, 0);
    LCD_PrintString("THEN CLICK...\0");
    GetClick();
    bClear_MotorPosition = 1;
    while (bClear_MotorPosition) Idle();
    Wait_ms(10);
    bFollowMode = 0;
    LCD_ClearDisplay();

    while (1) {
        ret = DisplayMenu(CommandMenu, 6, lastMenu);
        switch (ret) {
            case 0:
                lastMenu = 0;
                if (!CreateOrbitProgram() == 0)
                    RealtimeMode();
                break;
            case 1:
                lastMenu = 1;
                if (!CreateWaypointProgram() == 0)
                    RealtimeMode();
                break;
            case 3:
                lastMenu = 2;
                ret = GetPresetNumber();
                if (ret == -1) break;
                if (ret == -2) break;
                pnum = ret;
                switch (GetPresetType(pnum)) {
                    case 1:
                        LoadPreset(pnum, (unsigned char *) &CurrentPath);
                        if (!RunWaypointProgram() == 0)
                            RealtimeMode();
                        break;
                    case 2:
                        LoadPreset(pnum, (unsigned char *) &CurrentOrbitProgram);
                        if (!RunOrbitProgram() == 0)
                            RealtimeMode();
                        break;
                }
                break;
            case 2:
                lastMenu = 2;
                RealtimeMode();
                break;
            case 4:
                lastMenu = 0;
                ShowVoltage();
                break;
            case 5:
                lastMenu = 0;
                GoToSleep();
                break;
            case 6:
                lastMenu = 0;
                ExtMode();
                break;
        }
    }
}
int main(int argc, char* argv[])
{
   AV2000F dll;
   try{
      dll.Initialization();
   }
   catch(std::exception& ex){
      std::cout << "\nerror(s) on load library, description: " << ex.what() << std::endl;
      return 0;
   }
	dll.pSetAllocateFunction(Allocate);
	dll.pSetDeallocateFunction(Deallocate);
	
   dll.pReinitedFunction(Reinited);
	
	if(argc < 2){ std::cout << "no parameters into the command line" << std::endl; return 0; }

	// check for print help
	if(strchr(argv[1], '?')) {
      Usage();
      return 0;
   }


	int i;
	// read all parameters from command line
	PARAMS params;
	for(i = 2; i <= argc; i += 1)
		if(argv[i-1][0] == '-')
			if(i < argc)
            params[argv[i-1]] = argv[i];
			else
            params[argv[i-1]];

	/* read mode program
		img - get image;
		gcp - get camera parameter, if add "-all" - get all known parameters
		scp - set camera parameter
      fdf - factory defaults
      prm - permanently save
      find - find cameras

	*/

	PARAMS::iterator iter = params.find("-md");
	
	if(iter == params.end()){ std::cout << "\"-md\" - not found"; return 0; }

	
 if("find" == iter->second){
	FindCameras(dll);
	
      return 0;
   }

	// read IP address
	if(params.find("-ip") == params.end()) {
      std::cout << "IP address of camera not found\n";
      return 0;
   }

	if(iter->second == "img"){
      GetImage(dll, params);
      return 0;
   }

	if(iter->second == "h264"){
		GetImageH264(dll, params);
		return 0;
	}

	if(iter->second == "imgdef"){
      GetImageDef(dll, params);
      return 0;
   }


   if(iter->second == "gcp" || iter->second == "scp"){
      CameraParameter(dll, params);
      return 0;
   }
   if("fdf" == iter->second){
      FactoryDefault(dll, params["-ip"].c_str());
      return 0;
   }
   if("prm" == iter->second){
      Permanently(dll, params["-ip"].c_str());
      return 0;
   }
   std::cout << "mode: " << '\"' << iter->second << '\"' << " is unknown\n";
	return 0;
}