Subversion Repositories FlightCtrl

Rev

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