Vorlage für Projekt

Dependencies:   CD4052 COUNTER RC_PWM Telemetrie_eth_h2m1 mbed

Committer:
HMFK03LST1
Date:
Thu Nov 09 14:03:05 2017 +0000
Revision:
2:c2193c6cdf53
Parent:
0:d621f13db8c0
Vorlage f?r Projekt

Who changed what in which revision?

UserRevisionLine numberNew contents of line
HMFK03LST1 0:d621f13db8c0 1 #include "stdio.h"
HMFK03LST1 0:d621f13db8c0 2
HMFK03LST1 0:d621f13db8c0 3 struct struct_system
HMFK03LST1 0:d621f13db8c0 4 {
HMFK03LST1 0:d621f13db8c0 5 uint8_t length ;//1
HMFK03LST1 0:d621f13db8c0 6 uint8_t ID ;//2
HMFK03LST1 0:d621f13db8c0 7 uint8_t do_time : 1 ;//3.0
HMFK03LST1 0:d621f13db8c0 8 uint8_t do_measure : 1 ;//3.1
HMFK03LST1 0:d621f13db8c0 9 uint8_t C_limit : 1 ;//3.2
HMFK03LST1 0:d621f13db8c0 10 uint8_t RPM_limit : 1 ;//3.3
HMFK03LST1 0:d621f13db8c0 11 uint8_t T_limit : 1 ;//3.4
HMFK03LST1 0:d621f13db8c0 12 uint8_t run : 1 ;//3.5
HMFK03LST1 0:d621f13db8c0 13 uint8_t flag7 : 1 ;//3.6
HMFK03LST1 0:d621f13db8c0 14 uint8_t flag8 : 1 ;//3.7
HMFK03LST1 0:d621f13db8c0 15 uint8_t blade ;//4
HMFK03LST1 0:d621f13db8c0 16 uint16_t Amax ;//6
HMFK03LST1 0:d621f13db8c0 17 uint16_t RPMmax ;//8
HMFK03LST1 0:d621f13db8c0 18 uint16_t PWMmax ;//10 @rule: name=Max.PWM; expr=1200+PWMmax*3; unit=us
HMFK03LST1 0:d621f13db8c0 19 uint16_t PWMmin ;//12 @rule: name=Min.PWM; expr=900+PWMmin*2; unit=us
HMFK03LST1 0:d621f13db8c0 20 uint16_t air_ro ;//14 @rule: name=Air Density; expr=air_ro/10000; unit=kg/m³
HMFK03LST1 0:d621f13db8c0 21 uint8_t t_eng_max ;//15 @rule: name=Max. Eng. Temp; expr=t_max; unit=C
HMFK03LST1 0:d621f13db8c0 22 uint8_t fast ;//16
HMFK03LST1 0:d621f13db8c0 23 uint8_t slow ;//17
HMFK03LST1 0:d621f13db8c0 24 uint8_t measure ;//18
HMFK03LST1 0:d621f13db8c0 25 uint8_t pwm ;//19
HMFK03LST1 0:d621f13db8c0 26 uint8_t version ;//20
HMFK03LST1 0:d621f13db8c0 27 float open7 ;//24
HMFK03LST1 0:d621f13db8c0 28 uint8_t ck ;//25
HMFK03LST1 0:d621f13db8c0 29 } sys = {25,0};
HMFK03LST1 0:d621f13db8c0 30
HMFK03LST1 0:d621f13db8c0 31 struct struct_value
HMFK03LST1 0:d621f13db8c0 32 {
HMFK03LST1 0:d621f13db8c0 33 uint8_t length ;//1
HMFK03LST1 0:d621f13db8c0 34 uint8_t ID ;//2
HMFK03LST1 0:d621f13db8c0 35 uint8_t flag1 ;//3
HMFK03LST1 0:d621f13db8c0 36 uint8_t flag2 ;//4
HMFK03LST1 0:d621f13db8c0 37 int16_t rpm ;//6 @rule: name=RPM; expr=rpm; unit=1/min
HMFK03LST1 0:d621f13db8c0 38 float thrust ;//10 @rule: name=F_Thrust; expr=thrust; unit=N
HMFK03LST1 0:d621f13db8c0 39 float torque ;//14 @rule: name=M_Torque; expr=torque; unit=Nm
HMFK03LST1 0:d621f13db8c0 40 float voltage ;//18 @rule: name=Volt; expr=voltage; unit=V
HMFK03LST1 0:d621f13db8c0 41 float current ;//22 @rule: name=Current; expr=current; unit=V
HMFK03LST1 0:d621f13db8c0 42 float power_in ;//26 @rule: name=Power_In; expr=power_in; unit=W
HMFK03LST1 0:d621f13db8c0 43 float power_out ;//30 @rule: name=Power_Out; expr=power_out; unit=W
HMFK03LST1 0:d621f13db8c0 44 float eta ;//34 @rule: name=effectivity; expr=effectivity; unit=%
HMFK03LST1 0:d621f13db8c0 45 float thrust_eff ;//38 @rule: name=Thrust/W; expr=thrust_eff; unit=mN/W
HMFK03LST1 0:d621f13db8c0 46 float p_prop ;//42 @rule: name=Pressure; expr=p_prop; unit=Pa
HMFK03LST1 0:d621f13db8c0 47 float p_tunnel ;//46 @rule: name=Pressure; expr=p_tunnel; unit=Pa
HMFK03LST1 0:d621f13db8c0 48 float p_abs ;//50 @rule: name=Pressure; expr=p_abs; unit=Pa
HMFK03LST1 0:d621f13db8c0 49 float v_prop ;//54 @rule: name=Propeller_Windspeed; expr=v_prop; unit=m/s
HMFK03LST1 0:d621f13db8c0 50 float v_tunnel ;//58 @rule: name=Tunnel_Windspeed; expr=v_tunne; unit=m/s
HMFK03LST1 0:d621f13db8c0 51 float temp_eng ;//62 @rule: name=Temperatur_1; expr=temp_eng; unit=C
HMFK03LST1 0:d621f13db8c0 52 float temp_air ;//66 @rule: name=Temperatur_2; expr=temp_air; unit=C
HMFK03LST1 0:d621f13db8c0 53 float air_ro ;//70 @rule: name=Air Density; expr=air_ro; unit=kg/m³
HMFK03LST1 0:d621f13db8c0 54 int16_t pwm_act ;//74 @rule: name=PWM_Output; expr=pwm_act; unit=C
HMFK03LST1 0:d621f13db8c0 55 uint8_t ck ;//75
HMFK03LST1 0:d621f13db8c0 56 } values ={41, 1};
HMFK03LST1 0:d621f13db8c0 57
HMFK03LST1 0:d621f13db8c0 58 struct struct_value_raw
HMFK03LST1 0:d621f13db8c0 59 {
HMFK03LST1 0:d621f13db8c0 60 uint8_t length ;//1
HMFK03LST1 0:d621f13db8c0 61 uint8_t ID ;//2
HMFK03LST1 0:d621f13db8c0 62 uint8_t flag1 ;//3
HMFK03LST1 0:d621f13db8c0 63 uint8_t flag2 ;//4
HMFK03LST1 0:d621f13db8c0 64 int16_t rpm ;//6 @rule: name=RPM; expr=rpm; unit=1/min
HMFK03LST1 0:d621f13db8c0 65 int16_t thrust ;//8 @rule: name=F_Thrust; expr=thrust/100; unit=N
HMFK03LST1 0:d621f13db8c0 66 int16_t torque ;//10 @rule: name=M_Torque; expr=torque/1000; unit=Nm
HMFK03LST1 0:d621f13db8c0 67 uint16_t voltage ;//12 @rule: name=Volt; expr=voltage/1000; unit=V
HMFK03LST1 0:d621f13db8c0 68 uint16_t current ;//14 @rule: name=Current; expr=current/1000; unit=A
HMFK03LST1 0:d621f13db8c0 69 uint16_t power_in ;//16 @rule: name=Power_In; expr=power_in/100; unit=W
HMFK03LST1 0:d621f13db8c0 70 uint16_t power_out ;//18 @rule: name=Power_Out; expr=power_out/100; unit=W
HMFK03LST1 0:d621f13db8c0 71 uint16_t eta ;//20 @rule: name=effectivity; expr=effectivity/10; unit=%
HMFK03LST1 0:d621f13db8c0 72 int16_t thrust_eff ;//22 @rule: name=Thrust/W; expr=thrust_eff/100; unit=mN/W
HMFK03LST1 0:d621f13db8c0 73 uint16_t p_prop ;//24 @rule: name=Pressure; expr=p_prop; unit=Pa
HMFK03LST1 0:d621f13db8c0 74 uint16_t p_tunnel ;//26 @rule: name=Pressure; expr=p_tunnel; unit=Pa
HMFK03LST1 0:d621f13db8c0 75 int16_t p_abs ;//28 @rule: name=Pressure; expr=p_abs; unit=Pa
HMFK03LST1 0:d621f13db8c0 76 int16_t v_prop ;//30 @rule: name=Propeller_Windspeed; expr=v_prop/10; unit=m/s
HMFK03LST1 0:d621f13db8c0 77 int16_t v_tunnel ;//32 @rule: name=Tunnel_Windspeed; expr=v_tunnel/10; unit=m/s
HMFK03LST1 0:d621f13db8c0 78 int16_t temp_eng ;//34 @rule: name=Temp Engine; expr=temp_eng/10; unit=C
HMFK03LST1 0:d621f13db8c0 79 int16_t temp_air ;//36 @rule: name=Temp Air; expr=temp_air/10; unit=C
HMFK03LST1 0:d621f13db8c0 80 uint16_t air_ro ;//38 @rule: name=Air Density; expr=air_ro/10000; unit=kg/m³
HMFK03LST1 0:d621f13db8c0 81 int16_t pwm_act ;//40 @rule: name=PWM_Output; expr=pwm_act; unit=C
HMFK03LST1 0:d621f13db8c0 82 uint8_t ck ;//41
HMFK03LST1 0:d621f13db8c0 83 } raw ={41, 2};
HMFK03LST1 0:d621f13db8c0 84
HMFK03LST1 0:d621f13db8c0 85 struct struct_scaling
HMFK03LST1 0:d621f13db8c0 86 {
HMFK03LST1 0:d621f13db8c0 87 uint8_t length ;//1
HMFK03LST1 0:d621f13db8c0 88 uint8_t ID ;//2
HMFK03LST1 0:d621f13db8c0 89 uint8_t flag1 : 1 ;//3
HMFK03LST1 0:d621f13db8c0 90 uint8_t flag2 : 1 ;//4
HMFK03LST1 0:d621f13db8c0 91 int thrust_o ;//8
HMFK03LST1 0:d621f13db8c0 92 float thrust_s ;//12
HMFK03LST1 0:d621f13db8c0 93 int torque_o ;//16
HMFK03LST1 0:d621f13db8c0 94 float torque_s ;//20
HMFK03LST1 0:d621f13db8c0 95 int voltage_o ;//24
HMFK03LST1 0:d621f13db8c0 96 float voltage_s ;//28
HMFK03LST1 0:d621f13db8c0 97 int current_o ;//32
HMFK03LST1 0:d621f13db8c0 98 float current_s ;//36
HMFK03LST1 0:d621f13db8c0 99 int p_prop_o ;//40
HMFK03LST1 0:d621f13db8c0 100 float p_prop_s ;//44
HMFK03LST1 0:d621f13db8c0 101 int p_tunnel_o ;//48
HMFK03LST1 0:d621f13db8c0 102 float p_tunnel_s ;//52
HMFK03LST1 0:d621f13db8c0 103 int temp_eng_o ;//56
HMFK03LST1 0:d621f13db8c0 104 float temp_eng_s ;//60
HMFK03LST1 0:d621f13db8c0 105 int temp_air_o ;//64
HMFK03LST1 0:d621f13db8c0 106 float temp_air_s ;//68
HMFK03LST1 0:d621f13db8c0 107 uint8_t ck ;//37
HMFK03LST1 0:d621f13db8c0 108 } cal ={69, 3};
HMFK03LST1 0:d621f13db8c0 109
HMFK03LST1 0:d621f13db8c0 110
HMFK03LST1 0:d621f13db8c0 111
HMFK03LST1 0:d621f13db8c0 112 uint8_t* struct_id[] = {
HMFK03LST1 0:d621f13db8c0 113 &sys.length, //ID0
HMFK03LST1 0:d621f13db8c0 114 &values.length, //ID1
HMFK03LST1 0:d621f13db8c0 115 &raw.length, //ID2
HMFK03LST1 0:d621f13db8c0 116 &cal.length, //ID3
HMFK03LST1 0:d621f13db8c0 117 };