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