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