Subversion Repositories FlightCtrl

Rev

Rev 60 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
56 elmo 1
/* First version by Bjoern Biesenbach <bjoern@bjoern-b.de> */
2
 
3
#include <stdio.h>
64 elmo 4
#include <stdlib.h>
56 elmo 5
#include "iniparser/src/iniparser.h"
64 elmo 6
#include "iniparser/src/dictionary.h"
56 elmo 7
#include "paramSet.h"
8
#include "main.h"
9
#include "serial.h"
10
 
11
int main(int argv, char *argc[])
12
{
13
        if(argv != 4)
14
        {      
60 elmo 15
                printf("\nUsage: ./mkset <setting_file> <setting> <serial_port>\n\n\n");
16
                printf("\t Example: ./mkset Default.mkp 1 /dev/ttyS0\n\n");
56 elmo 17
                exit(2);
18
        }
19
        dictionary *d;
20
 
21
        d = iniparser_load(argc[1]);
22
 
23
        strcpy(Param.Name, (iniparser_getstr(d,"Setup:Name")));
24
        if(Param.Name=="")
25
                strcpy(Param.Name,"<unnamed>");
26
        Param.Kanalbelegung[0] = iniparser_getint(d,"Channels:Gas", 3);
27
        Param.Kanalbelegung[1] = iniparser_getint(d,"Channels:Gier", 4);
28
        Param.Kanalbelegung[2] = iniparser_getint(d,"Channels:Nick", 1);
29
        Param.Kanalbelegung[3] = iniparser_getint(d,"Channels:Roll", 2);
30
        Param.Kanalbelegung[4] = iniparser_getint(d,"Channels:Poti_1", 5);
31
        Param.Kanalbelegung[5] = iniparser_getint(d,"Channels:Poti_2", 6);
32
        Param.Kanalbelegung[6] = iniparser_getint(d,"Channels:Poti_3", 7);
33
        Param.Kanalbelegung[7] = iniparser_getint(d,"Channels:Poti_4", 8);
34
 
35
        Param.GlobalConfig = iniparser_getint(d,"Setup:GlobalConfig", 0);
36
 
37
        Param.Stick_P = iniparser_getint(d,"Stick:Nick_Roll-P", 4);
38
        Param.Stick_D = iniparser_getint(d,"Stick:Nick_Roll-D", 8);
39
        Param.Gier_P = iniparser_getint(d,"Stick:Gier-P", 16);
40
 
41
        Param.MaxHoehe = iniparser_getint(d,"Altitude:Setpoint", 251);
42
        Param.Hoehe_MinGas = iniparser_getint(d,"Altitude:MinGas", 30);
43
        Param.Hoehe_P = iniparser_getint(d,"Altitude:P", 10);
44
        Param.Luftdruck_D = iniparser_getint(d,"Altitude:Barometric-D", 90);
45
        Param.Hoehe_ACC_Wirkung = iniparser_getint(d,"Altitude:Z-ACC-Effect",15);
46
        Param.Hoehe_Verstaerkung = iniparser_getint(d,"Altitude:Gain", 2);
47
 
48
        Param.Gyro_P = iniparser_getint(d,"Gyro:P", 120);
49
        Param.Gyro_I = iniparser_getint(d,"Gyro:I", 150);
50
        Param.GyroAccFaktor = iniparser_getint(d,"Gyro:ACC_Gyro-Factor", 26);
51
 
52
        Param.I_Faktor = iniparser_getint(d,"Gyro:Main-I", 5);
53
 
54
        Param.Gas_Min = iniparser_getint(d,"Others:MinGas",15);
55
        Param.Gas_Max = iniparser_getint(d,"Others:MaxGas",250);
56
        Param.KompassWirkung = iniparser_getint(d,"Others:Compass-Effect",128);
57
        Param.UnterspannungsWarnung = iniparser_getint(d,"Others:UnderVoltage",90);
58
 
59
        Param.NotGas = iniparser_getint(d,"Others:NotGas",35);
60
        Param.NotGasZeit = iniparser_getint(d,"Others:NotGasTime",20);
61
 
62
        Param.UserParam1 = iniparser_getint(d,"User:Parameter_1",0);
63
        Param.UserParam2 = iniparser_getint(d,"User:Parameter_2",0);
64
        Param.UserParam3 = iniparser_getint(d,"User:Parameter_3",0);
65
        Param.UserParam4 = iniparser_getint(d,"User:Parameter_4",0);
66
 
67
        Param.ServoNickControl = iniparser_getint(d,"Camera:ServoNickControl",252);
68
        Param.ServoNickComp = iniparser_getint(d,"Camera:ServoNickCompensation",100);
69
        Param.ServoNickCompInvert = iniparser_getboolean(d,"Camera:ServoNickInvert",0);
70
        Param.ServoNickMin = iniparser_getint(d,"Camera:ServoNickMin",0);
71
        Param.ServoNickMax = iniparser_getint(d,"Camera:ServoNickMax",250);
72
        Param.ServoNickRefresh = iniparser_getint(d,"Camera:ServoNickRefreshRate",50);
73
 
74
        initSerial(argc[3]);
75
 
76
        SendOutData('l'+(atoi(argc[2])-1), 1,  &Param, sizeof(Param));
77
 
78
        iniparser_freedict(d);
79
        return EXIT_SUCCESS;
80
}
81
 
82