Vorlage für Projekt
Dependencies: CD4052 COUNTER RC_PWM Telemetrie_eth_h2m1 mbed
components.h
- Committer:
- HMFK03LST1
- Date:
- 2017-11-09
- Revision:
- 2:c2193c6cdf53
- Parent:
- 0:d621f13db8c0
File content as of revision 2:c2193c6cdf53:
#include "stdio.h" struct struct_system { uint8_t length ;//1 uint8_t ID ;//2 uint8_t do_time : 1 ;//3.0 uint8_t do_measure : 1 ;//3.1 uint8_t C_limit : 1 ;//3.2 uint8_t RPM_limit : 1 ;//3.3 uint8_t T_limit : 1 ;//3.4 uint8_t run : 1 ;//3.5 uint8_t flag7 : 1 ;//3.6 uint8_t flag8 : 1 ;//3.7 uint8_t blade ;//4 uint16_t Amax ;//6 uint16_t RPMmax ;//8 uint16_t PWMmax ;//10 @rule: name=Max.PWM; expr=1200+PWMmax*3; unit=us uint16_t PWMmin ;//12 @rule: name=Min.PWM; expr=900+PWMmin*2; unit=us uint16_t air_ro ;//14 @rule: name=Air Density; expr=air_ro/10000; unit=kg/m³ uint8_t t_eng_max ;//15 @rule: name=Max. Eng. Temp; expr=t_max; unit=C uint8_t fast ;//16 uint8_t slow ;//17 uint8_t measure ;//18 uint8_t pwm ;//19 uint8_t version ;//20 float open7 ;//24 uint8_t ck ;//25 } sys = {25,0}; struct struct_value { uint8_t length ;//1 uint8_t ID ;//2 uint8_t flag1 ;//3 uint8_t flag2 ;//4 int16_t rpm ;//6 @rule: name=RPM; expr=rpm; unit=1/min float thrust ;//10 @rule: name=F_Thrust; expr=thrust; unit=N float torque ;//14 @rule: name=M_Torque; expr=torque; unit=Nm float voltage ;//18 @rule: name=Volt; expr=voltage; unit=V float current ;//22 @rule: name=Current; expr=current; unit=V float power_in ;//26 @rule: name=Power_In; expr=power_in; unit=W float power_out ;//30 @rule: name=Power_Out; expr=power_out; unit=W float eta ;//34 @rule: name=effectivity; expr=effectivity; unit=% float thrust_eff ;//38 @rule: name=Thrust/W; expr=thrust_eff; unit=mN/W float p_prop ;//42 @rule: name=Pressure; expr=p_prop; unit=Pa float p_tunnel ;//46 @rule: name=Pressure; expr=p_tunnel; unit=Pa float p_abs ;//50 @rule: name=Pressure; expr=p_abs; unit=Pa float v_prop ;//54 @rule: name=Propeller_Windspeed; expr=v_prop; unit=m/s float v_tunnel ;//58 @rule: name=Tunnel_Windspeed; expr=v_tunne; unit=m/s float temp_eng ;//62 @rule: name=Temperatur_1; expr=temp_eng; unit=C float temp_air ;//66 @rule: name=Temperatur_2; expr=temp_air; unit=C float air_ro ;//70 @rule: name=Air Density; expr=air_ro; unit=kg/m³ int16_t pwm_act ;//74 @rule: name=PWM_Output; expr=pwm_act; unit=C uint8_t ck ;//75 } values ={41, 1}; struct struct_value_raw { uint8_t length ;//1 uint8_t ID ;//2 uint8_t flag1 ;//3 uint8_t flag2 ;//4 int16_t rpm ;//6 @rule: name=RPM; expr=rpm; unit=1/min int16_t thrust ;//8 @rule: name=F_Thrust; expr=thrust/100; unit=N int16_t torque ;//10 @rule: name=M_Torque; expr=torque/1000; unit=Nm uint16_t voltage ;//12 @rule: name=Volt; expr=voltage/1000; unit=V uint16_t current ;//14 @rule: name=Current; expr=current/1000; unit=A uint16_t power_in ;//16 @rule: name=Power_In; expr=power_in/100; unit=W uint16_t power_out ;//18 @rule: name=Power_Out; expr=power_out/100; unit=W uint16_t eta ;//20 @rule: name=effectivity; expr=effectivity/10; unit=% int16_t thrust_eff ;//22 @rule: name=Thrust/W; expr=thrust_eff/100; unit=mN/W uint16_t p_prop ;//24 @rule: name=Pressure; expr=p_prop; unit=Pa uint16_t p_tunnel ;//26 @rule: name=Pressure; expr=p_tunnel; unit=Pa int16_t p_abs ;//28 @rule: name=Pressure; expr=p_abs; unit=Pa int16_t v_prop ;//30 @rule: name=Propeller_Windspeed; expr=v_prop/10; unit=m/s int16_t v_tunnel ;//32 @rule: name=Tunnel_Windspeed; expr=v_tunnel/10; unit=m/s int16_t temp_eng ;//34 @rule: name=Temp Engine; expr=temp_eng/10; unit=C int16_t temp_air ;//36 @rule: name=Temp Air; expr=temp_air/10; unit=C uint16_t air_ro ;//38 @rule: name=Air Density; expr=air_ro/10000; unit=kg/m³ int16_t pwm_act ;//40 @rule: name=PWM_Output; expr=pwm_act; unit=C uint8_t ck ;//41 } raw ={41, 2}; struct struct_scaling { uint8_t length ;//1 uint8_t ID ;//2 uint8_t flag1 : 1 ;//3 uint8_t flag2 : 1 ;//4 int thrust_o ;//8 float thrust_s ;//12 int torque_o ;//16 float torque_s ;//20 int voltage_o ;//24 float voltage_s ;//28 int current_o ;//32 float current_s ;//36 int p_prop_o ;//40 float p_prop_s ;//44 int p_tunnel_o ;//48 float p_tunnel_s ;//52 int temp_eng_o ;//56 float temp_eng_s ;//60 int temp_air_o ;//64 float temp_air_s ;//68 uint8_t ck ;//37 } cal ={69, 3}; uint8_t* struct_id[] = { &sys.length, //ID0 &values.length, //ID1 &raw.length, //ID2 &cal.length, //ID3 };