Vorlage für Projekt
Dependencies: CD4052 COUNTER RC_PWM Telemetrie_eth_h2m1 mbed
components.h@2:c2193c6cdf53, 2017-11-09 (annotated)
- 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?
User | Revision | Line number | New 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 | }; |