pax_global_header 0000666 0000000 0000000 00000000064 14420564004 0014511 g ustar 00root root 0000000 0000000 52 comment=becee53aec9ea703d69732b8a9a773e9584a9c95
telemetrydescription-master/ 0000775 0000000 0000000 00000000000 14420564004 0016624 5 ustar 00root root 0000000 0000000 telemetrydescription-master/Amicalsat/ 0000775 0000000 0000000 00000000000 14420564004 0020522 5 ustar 00root root 0000000 0000000 telemetrydescription-master/Amicalsat/README.md 0000664 0000000 0000000 00000001103 14420564004 0021774 0 ustar 00root root 0000000 0000000 # AMICALSAT Kaitai file
## context
## Reference
## data Structure
![Amicalsat Tlm]( Amicalsat/generated/frame_tlm_amicalsat.dot.png)
## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
## License
The pictures received from the satellite are licensed under : [creative common CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) with mandatory mention of CSUG & AMSAT-F
( https://creativecommons.org/licenses/by-nc-sa/4.0/ )
telemetrydescription-master/Amicalsat/amicalsat.ksy 0000664 0000000 0000000 00000033367 14420564004 0023224 0 ustar 00root root 0000000 0000000 # Kaitai file for AMICALSAT satellite
#
# based on AmicalSat downlinks technicals informations document
#
# Author : C. Mercier for AMSAT-Francophone
#
# Telemetry based on APRS
#
# Version : 0.3
#
#
meta:
id: frame_tlm_amicalsat
title: AMICALSAT TLM Frame
file-extension: .bin
license: LGPL V2
ks-version: 0.8
endian: be
seq:
- id: frame_tlm_entry_sat
type: ax25_frame
doc-ref: 'https://www.tapr.org/pub_ax25.html'
types:
ax25_frame:
seq:
- id: ax25_header
type: ax25_header
- id: payload
type: i_frame
ax25_header:
seq:
- id: dest_callsign_raw
type: dest_callsign_raw
- id: dest_ssid_raw
type: u1
- id: src_callsign_raw
type: src_callsign_raw
- id: src_ssid_raw
type: u1
- id: ctl
type: u1
instances:
src_ssid:
value: (src_ssid_raw & 0x0f) >> 1
dest_ssid:
value: (dest_ssid_raw & 0x0f) >> 1
dest_callsign_raw:
seq:
- id: dest_callsign_ror
process: ror(1)
size: 6
type: dest_callsign
src_callsign_raw:
seq:
- id: src_callsign_ror
process: ror(1)
type: src_callsign
size: 6
dest_callsign:
seq:
- id: dest_callsign
type: str
encoding: ASCII
size: 6
src_callsign:
seq:
- id: src_callsign
type: str
encoding: ASCII
size: 6
i_frame:
seq:
- id: pid
type: u1
- id: field
type: str
encoding: ASCII
terminator: 0x3D
- id: tlm_area
type: str
encoding: ASCII
terminator: 0x3B
- id: tlm_type
type: str
encoding: ASCII
terminator: 0x3B
- id: tlm_area_switch
type:
switch-on: tlm_area
cases:
'"M1"': m1_type
'"A1"': a1_type
'"EM"': emer_type
'"ER"': emer_type
'"V1"': v1_type
'"U2"': u2_type
'"CU_R"': cu_type
'"CU_L"': cu_type
m1_type:
seq:
- id: time_stamps
type: str
encoding: ASCII
terminator: 0x3B
- id: tlm_sw
type:
switch-on: _parent.tlm_type
cases:
'"LOG"': log_type
'"FLAGS"': flags_type
- id: ax25_info
size-eos: true
a1_type:
seq:
- id: tlm_sw
type:
switch-on: _parent.tlm_type
cases:
'"FLAGS"': a1_flag_type
'"MAG"': a1_mag_type
'"GYRO"' : a1_gyro_type
'"POSITION"' : a1_position_type
emer_type:
seq:
- id: time_stamps
type: str
encoding: ASCII
terminator: 0x3B
- id: tlmsw
type:
switch-on: _parent.tlm_type
cases:
'"LOG"': em_log_type
'"MN"': emmn_type
v1_type:
seq:
- id: tlmsw
type:
switch-on: _parent.tlm_type
cases:
'"RL"': v1_rl_type
'"MS"': ms_type
u2_type:
seq:
- id: tlmsw
type:
switch-on: _parent.tlm_type
cases:
'"RL"': u2_rl_type
'"MS"': ms_type
cu_type:
seq:
- id: time_stamps
type: str
encoding: ASCII
terminator: 0x3B
- id: tlmsw
type:
switch-on: _parent.tlm_type
cases:
'"ONYX SENSOR T"': onyx_type
'"LOG"': cu_log_type
#
#M1;LOG;[Timestamp];[Boot number];[Up time];[CPU voltage];[CPU temperature]
#
log_type:
seq:
- id: boot_number
type: str
encoding: ASCII
terminator: 0x3B
- id: up_time
type: str
encoding: ASCII
terminator: 0x3B
- id: cpu_voltage
type: str
encoding: ASCII
terminator: 0x3B
- id: cpu_temperature
type: str
encoding: ASCII
size-eos: true
instances:
cpu_voltage_volt:
value: (cpu_voltage.to_i) / 1000.0
boot_number_int:
value: (boot_number.to_i)
cpu_temperature_degree:
value: (cpu_temperature.to_i)
up_time_sec:
value: (up_time.to_i)
time_stamps_sec:
value: (_parent.time_stamps.to_i)
#M1;FLAGS;[Timestamp];[Hex flags];
# ; added at the end
# to do
flags_type:
seq:
- id: hex_flags
type: str
encoding: ASCII
terminator: 0x3B
instances:
time_stamps_sec:
value: (_parent.time_stamps.to_i)
#
#A1;FLAGS;[mode];[flags];[faults]
#
a1_flag_type:
seq:
- id: time_stamps
type: str
encoding: ASCII
terminator: 0x3B
- id: mode
type: str
encoding: ASCII
terminator: 0x3B
- id: a1_flags
type: str
encoding: ASCII
terminator: 0x3B
- id: faults
type: str
encoding: ASCII
size-eos: true
instances:
mode_value:
value: (mode.to_i)
faults_value:
value: (faults.to_i)
time_stamps_sec:
value: (time_stamps.to_i)
#
#A1;MAG;[Current timestamp];[MagX];[MagY];[MagZ]
#
a1_mag_type:
seq:
- id: time_stamps
type: str
encoding: ASCII
terminator: 0x3B
- id: mag_x
type: str
encoding: ASCII
terminator: 0x3B
- id: mag_y
type: str
encoding: ASCII
terminator: 0x3B
- id: mag_z
type: str
encoding: ASCII
terminator: 0x3B
- id: misc
type: str
encoding: ASCII
size-eos: true
instances:
time_stamps_sec:
value: (time_stamps.to_i)
mag_x_value:
value: (mag_x.to_i)
mag_y_value:
value: (mag_y.to_i)
mag_z_value:
value: (mag_z.to_i)
#
#A1;GYRO;[Current timestamp];[GyroX];[GyroY];[GyroZ]
#
a1_gyro_type:
seq:
- id: time_stamps
type: str
encoding: ASCII
terminator: 0x3B
- id: giro_x
type: str
encoding: ASCII
terminator: 0x3B
- id: giro_y
type: str
encoding: ASCII
terminator: 0x3B
- id: giro_z
type: str
encoding: ASCII
terminator: 0x3B
- id: misc
type: str
encoding: ASCII
size-eos: true
instances:
time_stamps_sec:
value: (time_stamps.to_i)
giro_x_value:
value: (giro_x.to_i)
giro_y_value:
value: (giro_y.to_i)
giro_z_value:
value: (giro_z.to_i)
#
#A1;POSITION;[Current timestamp];[Latitude];[Longitude]
#
# Todo : completer - attente de données exemple
#
a1_position_type:
seq:
- id: time_stamps
type: str
encoding: ASCII
terminator: 0x3B
- id: latitude
type: str
encoding: ASCII
terminator: 0x3B
- id: longitude
type: str
encoding: ASCII
size-eos: true
instances:
time_stamps_sec:
value: (time_stamps.to_i)
#
#[EM/ER];MN;[Timestamp];[V in];[V solar];[I in];[P in];[P peak];[T cpu];[V cpu]
#
emmn_type:
seq:
- id: v_in
type: str
encoding: ASCII
terminator: 0x3B
- id: v_solar
type: str
encoding: ASCII
terminator: 0x3B
- id: i_in
type: str
encoding: ASCII
terminator: 0x3B
- id: p_in
type: str
encoding: ASCII
terminator: 0x3B
- id: p_peak
type: str
encoding: ASCII
terminator: 0x3B
- id: t_cpu
type: str
encoding: ASCII
terminator: 0x3B
- id: v_cpu
type: str
encoding: ASCII
size-eos: true
instances:
v_in_volt:
value: (v_in.to_i) / 1000.0
v_solar_volt:
value: (v_solar.to_i) / 1000.0
i_in_ma:
value: (i_in.to_i)
p_in_mw:
value: (p_in.to_i)
p_peak_mw:
value: (p_peak.to_i)
t_cpu_degree:
value: (t_cpu.to_i)
v_cpu_volt:
value: (v_cpu.to_i) / 1000.0
time_stamps_sec:
value: (_parent.time_stamps.to_i)
#
#EM;LOG;[Timestamp];[Boot number];[Input voltage];[Input current];[Input power];[Peak Power];[Solar panel voltage]
#
em_log_type:
seq:
- id: boot_number
type: str
encoding: ASCII
terminator: 0x3B
- id: input_voltage
type: str
encoding: ASCII
terminator: 0x3B
- id: input_current
type: str
encoding: ASCII
terminator: 0x3B
- id: input_power
type: str
encoding: ASCII
terminator: 0x3B
- id: peak_power
type: str
encoding: ASCII
terminator: 0x3B
- id: solar_panel_voltage
type: str
encoding: ASCII
size-eos: true
instances:
boot_number_int:
value: (boot_number.to_i)
input_voltage_volt:
value: (input_voltage.to_i) / 1000.0
input_current_ma:
value: (input_current.to_i)
input_power_mw:
value: (input_power.to_i)
peak_power_mw:
value: (peak_power.to_i)
solar_panel_voltage_volt:
value: (solar_panel_voltage.to_i) / 1000.0
time_stamps_sec:
value: (_parent.time_stamps.to_i)
#
#[V1];RL;[Timestamp],[CPU voltage];[Battery voltage];[CPU temperature];[Amplifier temperature];[Flags]
#
v1_rl_type:
seq:
- id: time_stamps
type: str
encoding: ASCII
terminator: 0x2C
- id: cpu_voltage
type: str
encoding: ASCII
terminator: 0x3B
- id: battery_voltage
type: str
encoding: ASCII
terminator: 0x3B
- id: cpu_temperature
type: str
encoding: ASCII
terminator: 0x3B
- id: amplifier_temperature
type: str
encoding: ASCII
terminator: 0x3B
- id: flagsmagic
contents: [0x30,0x78]
- id: flags
type: str
encoding: ASCII
size: 1
instances:
cpu_voltage_volt:
value: (cpu_voltage.to_i) / 1000.0
battery_voltage_volt:
value: (battery_voltage.to_i) / 1000.0
cpu_temperature_degree:
value: (cpu_temperature.to_i)
amplifier_temperature_degree:
value: (amplifier_temperature.to_i)
flags_hexa:
value: (flags.to_i)
time_stamps_sec:
value: (time_stamps.to_i)
#
#[U2];RL;[Timestamp],[CPU voltage];[Battery voltage];[CPU temperature];[Amplifier temperature];[Flags]
#
u2_rl_type :
seq:
- id: time_stamps
type: str
encoding: ASCII
terminator: 0x3B
- id: cpu_voltage
type: str
encoding: ASCII
terminator: 0x3B
- id: battery_voltage
type: str
encoding: ASCII
terminator: 0x3B
- id: cpu_temperature
type: str
encoding: ASCII
terminator: 0x3B
- id: amplifier_temperature
type: str
encoding: ASCII
terminator: 0x3B
- id: flagsmagic
contents: [0x30,0x78]
- id: flags
type: str
encoding: ASCII
size: 1
instances:
cpu_voltage_volt:
value: (cpu_voltage.to_i) / 1000.0
battery_voltage_volt:
value: (battery_voltage.to_i) / 1000.0
cpu_temperature_degree:
value: (cpu_temperature.to_i)
amplifier_temperature_degree:
value: (amplifier_temperature.to_i)
flags_hexa:
value: (flags.to_i)
time_stamps_sec:
value: (time_stamps.to_i)
#
#[V1/U2];MS;[Timestamp];[Current rssi];[Latch rssi];[AFC offset ]
#
ms_type:
seq:
- id: time_stamps
type: str
encoding: ASCII
terminator: 0x3B
- id: current_rssi
type: str
encoding: ASCII
terminator: 0x3B
- id: latch_rssi
type: str
encoding: ASCII
terminator: 0x3B
- id: a_f_c_offset
type: str
encoding: ASCII
size-eos: true
instances:
current_rssi_ma:
value: (current_rssi.to_i)
latch_rssi_value:
value: (latch_rssi.to_i)
a_f_c_offset_value:
value: (a_f_c_offset.to_i)
time_stamps_sec:
value: (time_stamps.to_i)
#
#[CU_R/CU_L];LOG;[Timestamp];[CPU voltage];[CPU temperature];[flags ]
#
# Todo : traiter le flag
cu_log_type:
seq:
- id: cpu_voltage
type: str
encoding: ASCII
terminator: 0x3B
- id: cpu_temperature
type: str
encoding: ASCII
terminator: 0x3B
- id: flagsmagic
contents: [0x30,0x78]
- id: flags
type: str
encoding: ASCII
size-eos: true
instances:
cpu_voltage_volt:
value: (cpu_voltage.to_i) / 1000.0
cpu_temperature_degree:
value: (cpu_temperature.to_i)
time_stamps_sec:
value: (_parent.time_stamps.to_i)
#
#[CU_R/CU_L];ONYX SENSOR T;[Timestamp];[Return value]
# todo : attente de données pour test
onyx_type:
seq:
- id: time_stamps
type: str
encoding: ASCII
terminator: 0x3B
- id: return_value
type: str
encoding: ASCII
size-eos: true
instances:
time_stamps_sec:
value: (time_stamps.to_i) telemetrydescription-master/Amicalsat/docs/ 0000775 0000000 0000000 00000000000 14420564004 0021452 5 ustar 00root root 0000000 0000000 telemetrydescription-master/Amicalsat/docs/.gitkeep 0000664 0000000 0000000 00000000000 14420564004 0023071 0 ustar 00root root 0000000 0000000 telemetrydescription-master/Amicalsat/generated/ 0000775 0000000 0000000 00000000000 14420564004 0022460 5 ustar 00root root 0000000 0000000 telemetrydescription-master/Amicalsat/generated/.gitkeep 0000664 0000000 0000000 00000000000 14420564004 0024077 0 ustar 00root root 0000000 0000000 telemetrydescription-master/Amicalsat/generated/frame_tlm_amicalsat.dot 0000664 0000000 0000000 00000131736 14420564004 0027167 0 ustar 00root root 0000000 0000000 digraph {
rankdir=LR;
node [shape=plaintext];
subgraph cluster__frame_tlm_amicalsat {
label="FrameTlmAmicalsat";
graph[style=dotted];
frame_tlm_amicalsat__seq [label=<
pos | size | type | id |
0 | ... | Ax25Frame | frame_tlm_entry_sat |
>];
subgraph cluster__emmn_type {
label="FrameTlmAmicalsat::EmmnType";
graph[style=dotted];
emmn_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | v_in |
... | ... | str(term=59, ASCII) | v_solar |
... | ... | str(term=59, ASCII) | i_in |
... | ... | str(term=59, ASCII) | p_in |
... | ... | str(term=59, ASCII) | p_peak |
... | ... | str(term=59, ASCII) | t_cpu |
... | ? | str(ASCII) | v_cpu |
>];
emmn_type__inst__p_peak_mw [label=<
id | value |
p_peak_mw | p_peak.to_i |
>];
emmn_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | _parent.time_stamps.to_i |
>];
emmn_type__inst__t_cpu_degree [label=<
id | value |
t_cpu_degree | t_cpu.to_i |
>];
emmn_type__inst__v_solar_volt [label=<
id | value |
v_solar_volt | (v_solar.to_i / 1000.0) |
>];
emmn_type__inst__v_in_volt [label=<
id | value |
v_in_volt | (v_in.to_i / 1000.0) |
>];
emmn_type__inst__p_in_mw [label=<>];
emmn_type__inst__i_in_ma [label=<>];
emmn_type__inst__v_cpu_volt [label=<
id | value |
v_cpu_volt | (v_cpu.to_i / 1000.0) |
>];
}
subgraph cluster__ax25_frame {
label="FrameTlmAmicalsat::Ax25Frame";
graph[style=dotted];
ax25_frame__seq [label=<
pos | size | type | id |
0 | 15 | Ax25Header | ax25_header |
15 | ... | IFrame | payload |
>];
}
subgraph cluster__dest_callsign {
label="FrameTlmAmicalsat::DestCallsign";
graph[style=dotted];
dest_callsign__seq [label=<
pos | size | type | id |
0 | 6 | str(ASCII) | dest_callsign |
>];
}
subgraph cluster__ax25_header {
label="FrameTlmAmicalsat::Ax25Header";
graph[style=dotted];
ax25_header__seq [label=<
pos | size | type | id |
0 | 6 | DestCallsignRaw | dest_callsign_raw |
6 | 1 | u1 | dest_ssid_raw |
7 | 6 | SrcCallsignRaw | src_callsign_raw |
13 | 1 | u1 | src_ssid_raw |
14 | 1 | u1 | ctl |
>];
ax25_header__inst__src_ssid [label=<
id | value |
src_ssid | ((src_ssid_raw & 15) >> 1) |
>];
ax25_header__inst__dest_ssid [label=<
id | value |
dest_ssid | ((dest_ssid_raw & 15) >> 1) |
>];
}
subgraph cluster__a1_position_type {
label="FrameTlmAmicalsat::A1PositionType";
graph[style=dotted];
a1_position_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | time_stamps |
... | ... | str(term=59, ASCII) | latitude |
... | ? | str(ASCII) | longitude |
>];
a1_position_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | time_stamps.to_i |
>];
}
subgraph cluster__m1_type {
label="FrameTlmAmicalsat::M1Type";
graph[style=dotted];
m1_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | time_stamps |
... | ... | switch (_parent.tlm_type) | tlm_sw |
... | ? | | ax25_info |
>];
m1_type__seq_tlm_sw_switch [label=<
case | type |
"LOG" | LogType |
"FLAGS" | FlagsType |
>];
}
subgraph cluster__em_log_type {
label="FrameTlmAmicalsat::EmLogType";
graph[style=dotted];
em_log_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | boot_number |
... | ... | str(term=59, ASCII) | input_voltage |
... | ... | str(term=59, ASCII) | input_current |
... | ... | str(term=59, ASCII) | input_power |
... | ... | str(term=59, ASCII) | peak_power |
... | ? | str(ASCII) | solar_panel_voltage |
>];
em_log_type__inst__input_current_ma [label=<
id | value |
input_current_ma | input_current.to_i |
>];
em_log_type__inst__peak_power_mw [label=<
id | value |
peak_power_mw | peak_power.to_i |
>];
em_log_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | _parent.time_stamps.to_i |
>];
em_log_type__inst__input_power_mw [label=<
id | value |
input_power_mw | input_power.to_i |
>];
em_log_type__inst__boot_number_int [label=<
id | value |
boot_number_int | boot_number.to_i |
>];
em_log_type__inst__input_voltage_volt [label=<
id | value |
input_voltage_volt | (input_voltage.to_i / 1000.0) |
>];
em_log_type__inst__solar_panel_voltage_volt [label=<
id | value |
solar_panel_voltage_volt | (solar_panel_voltage.to_i / 1000.0) |
>];
}
subgraph cluster__a1_flag_type {
label="FrameTlmAmicalsat::A1FlagType";
graph[style=dotted];
a1_flag_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | time_stamps |
... | ... | str(term=59, ASCII) | mode |
... | ... | str(term=59, ASCII) | a1_flags |
... | ? | str(ASCII) | faults |
>];
a1_flag_type__inst__mode_value [label=<
id | value |
mode_value | mode.to_i |
>];
a1_flag_type__inst__faults_value [label=<
id | value |
faults_value | faults.to_i |
>];
a1_flag_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | time_stamps.to_i |
>];
}
subgraph cluster__src_callsign_raw {
label="FrameTlmAmicalsat::SrcCallsignRaw";
graph[style=dotted];
src_callsign_raw__seq [label=<
pos | size | type | id |
0 | 6 | SrcCallsign | src_callsign_ror |
>];
}
subgraph cluster__flags_type {
label="FrameTlmAmicalsat::FlagsType";
graph[style=dotted];
flags_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | hex_flags |
>];
flags_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | _parent.time_stamps.to_i |
>];
}
subgraph cluster__i_frame {
label="FrameTlmAmicalsat::IFrame";
graph[style=dotted];
i_frame__seq [label=<
pos | size | type | id |
0 | 1 | u1 | pid |
1 | ... | str(term=61, ASCII) | field |
... | ... | str(term=59, ASCII) | tlm_area |
... | ... | str(term=59, ASCII) | tlm_type |
... | ... | switch (tlm_area) | tlm_area_switch |
>];
i_frame__seq_tlm_area_switch_switch [label=<
case | type |
"EM" | EmerType |
"M1" | M1Type |
"V1" | V1Type |
"U2" | U2Type |
"A1" | A1Type |
"CU_L" | CuType |
"CU_R" | CuType |
"ER" | EmerType |
>];
}
subgraph cluster__u2_rl_type {
label="FrameTlmAmicalsat::U2RlType";
graph[style=dotted];
u2_rl_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | time_stamps |
... | ... | str(term=59, ASCII) | cpu_voltage |
... | ... | str(term=59, ASCII) | battery_voltage |
... | ... | str(term=59, ASCII) | cpu_temperature |
... | ... | str(term=59, ASCII) | amplifier_temperature |
... | 2 | 30 78 | flagsmagic |
... | 1 | str(ASCII) | flags |
>];
u2_rl_type__inst__cpu_temperature_degree [label=<
id | value |
cpu_temperature_degree | cpu_temperature.to_i |
>];
u2_rl_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | time_stamps.to_i |
>];
u2_rl_type__inst__cpu_voltage_volt [label=<
id | value |
cpu_voltage_volt | (cpu_voltage.to_i / 1000.0) |
>];
u2_rl_type__inst__flags_hexa [label=<
id | value |
flags_hexa | flags.to_i |
>];
u2_rl_type__inst__amplifier_temperature_degree [label=<
id | value |
amplifier_temperature_degree | amplifier_temperature.to_i |
>];
u2_rl_type__inst__battery_voltage_volt [label=<
id | value |
battery_voltage_volt | (battery_voltage.to_i / 1000.0) |
>];
}
subgraph cluster__cu_log_type {
label="FrameTlmAmicalsat::CuLogType";
graph[style=dotted];
cu_log_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | cpu_voltage |
... | ... | str(term=59, ASCII) | cpu_temperature |
... | 2 | 30 78 | flagsmagic |
... | ? | str(ASCII) | flags |
>];
cu_log_type__inst__cpu_voltage_volt [label=<
id | value |
cpu_voltage_volt | (cpu_voltage.to_i / 1000.0) |
>];
cu_log_type__inst__cpu_temperature_degree [label=<
id | value |
cpu_temperature_degree | cpu_temperature.to_i |
>];
cu_log_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | _parent.time_stamps.to_i |
>];
}
subgraph cluster__v1_rl_type {
label="FrameTlmAmicalsat::V1RlType";
graph[style=dotted];
v1_rl_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=44, ASCII) | time_stamps |
... | ... | str(term=59, ASCII) | cpu_voltage |
... | ... | str(term=59, ASCII) | battery_voltage |
... | ... | str(term=59, ASCII) | cpu_temperature |
... | ... | str(term=59, ASCII) | amplifier_temperature |
... | 2 | 30 78 | flagsmagic |
... | 1 | str(ASCII) | flags |
>];
v1_rl_type__inst__cpu_temperature_degree [label=<
id | value |
cpu_temperature_degree | cpu_temperature.to_i |
>];
v1_rl_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | time_stamps.to_i |
>];
v1_rl_type__inst__cpu_voltage_volt [label=<
id | value |
cpu_voltage_volt | (cpu_voltage.to_i / 1000.0) |
>];
v1_rl_type__inst__flags_hexa [label=<
id | value |
flags_hexa | flags.to_i |
>];
v1_rl_type__inst__amplifier_temperature_degree [label=<
id | value |
amplifier_temperature_degree | amplifier_temperature.to_i |
>];
v1_rl_type__inst__battery_voltage_volt [label=<
id | value |
battery_voltage_volt | (battery_voltage.to_i / 1000.0) |
>];
}
subgraph cluster__onyx_type {
label="FrameTlmAmicalsat::OnyxType";
graph[style=dotted];
onyx_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | time_stamps |
... | ? | str(ASCII) | return_value |
>];
onyx_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | time_stamps.to_i |
>];
}
subgraph cluster__emer_type {
label="FrameTlmAmicalsat::EmerType";
graph[style=dotted];
emer_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | time_stamps |
... | ... | switch (_parent.tlm_type) | tlmsw |
>];
emer_type__seq_tlmsw_switch [label=<
case | type |
"LOG" | EmLogType |
"MN" | EmmnType |
>];
}
subgraph cluster__cu_type {
label="FrameTlmAmicalsat::CuType";
graph[style=dotted];
cu_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | time_stamps |
... | ... | switch (_parent.tlm_type) | tlmsw |
>];
cu_type__seq_tlmsw_switch [label=<
case | type |
"ONYX SENSOR T" | OnyxType |
"LOG" | CuLogType |
>];
}
subgraph cluster__a1_gyro_type {
label="FrameTlmAmicalsat::A1GyroType";
graph[style=dotted];
a1_gyro_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | time_stamps |
... | ... | str(term=59, ASCII) | giro_x |
... | ... | str(term=59, ASCII) | giro_y |
... | ... | str(term=59, ASCII) | giro_z |
... | ? | str(ASCII) | misc |
>];
a1_gyro_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | time_stamps.to_i |
>];
a1_gyro_type__inst__giro_x_value [label=<
id | value |
giro_x_value | giro_x.to_i |
>];
a1_gyro_type__inst__giro_y_value [label=<
id | value |
giro_y_value | giro_y.to_i |
>];
a1_gyro_type__inst__giro_z_value [label=<
id | value |
giro_z_value | giro_z.to_i |
>];
}
subgraph cluster__a1_mag_type {
label="FrameTlmAmicalsat::A1MagType";
graph[style=dotted];
a1_mag_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | time_stamps |
... | ... | str(term=59, ASCII) | mag_x |
... | ... | str(term=59, ASCII) | mag_y |
... | ... | str(term=59, ASCII) | mag_z |
... | ? | str(ASCII) | misc |
>];
a1_mag_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | time_stamps.to_i |
>];
a1_mag_type__inst__mag_x_value [label=<
id | value |
mag_x_value | mag_x.to_i |
>];
a1_mag_type__inst__mag_y_value [label=<
id | value |
mag_y_value | mag_y.to_i |
>];
a1_mag_type__inst__mag_z_value [label=<
id | value |
mag_z_value | mag_z.to_i |
>];
}
subgraph cluster__a1_type {
label="FrameTlmAmicalsat::A1Type";
graph[style=dotted];
a1_type__seq [label=<
pos | size | type | id |
0 | ... | switch (_parent.tlm_type) | tlm_sw |
>];
a1_type__seq_tlm_sw_switch [label=<
case | type |
"FLAGS" | A1FlagType |
"MAG" | A1MagType |
"GYRO" | A1GyroType |
"POSITION" | A1PositionType |
>];
}
subgraph cluster__ms_type {
label="FrameTlmAmicalsat::MsType";
graph[style=dotted];
ms_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | time_stamps |
... | ... | str(term=59, ASCII) | current_rssi |
... | ... | str(term=59, ASCII) | latch_rssi |
... | ? | str(ASCII) | a_f_c_offset |
>];
ms_type__inst__current_rssi_ma [label=<
id | value |
current_rssi_ma | current_rssi.to_i |
>];
ms_type__inst__latch_rssi_value [label=<
id | value |
latch_rssi_value | latch_rssi.to_i |
>];
ms_type__inst__a_f_c_offset_value [label=<
id | value |
a_f_c_offset_value | a_f_c_offset.to_i |
>];
ms_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | time_stamps.to_i |
>];
}
subgraph cluster__log_type {
label="FrameTlmAmicalsat::LogType";
graph[style=dotted];
log_type__seq [label=<
pos | size | type | id |
0 | ... | str(term=59, ASCII) | boot_number |
... | ... | str(term=59, ASCII) | up_time |
... | ... | str(term=59, ASCII) | cpu_voltage |
... | ? | str(ASCII) | cpu_temperature |
>];
log_type__inst__cpu_temperature_degree [label=<
id | value |
cpu_temperature_degree | cpu_temperature.to_i |
>];
log_type__inst__up_time_sec [label=<
id | value |
up_time_sec | up_time.to_i |
>];
log_type__inst__time_stamps_sec [label=<
id | value |
time_stamps_sec | _parent.time_stamps.to_i |
>];
log_type__inst__boot_number_int [label=<
id | value |
boot_number_int | boot_number.to_i |
>];
log_type__inst__cpu_voltage_volt [label=<
id | value |
cpu_voltage_volt | (cpu_voltage.to_i / 1000.0) |
>];
}
subgraph cluster__dest_callsign_raw {
label="FrameTlmAmicalsat::DestCallsignRaw";
graph[style=dotted];
dest_callsign_raw__seq [label=<
pos | size | type | id |
0 | 6 | DestCallsign | dest_callsign_ror |
>];
}
subgraph cluster__v1_type {
label="FrameTlmAmicalsat::V1Type";
graph[style=dotted];
v1_type__seq [label=<
pos | size | type | id |
0 | ... | switch (_parent.tlm_type) | tlmsw |
>];
v1_type__seq_tlmsw_switch [label=<
case | type |
"RL" | V1RlType |
"MS" | MsType |
>];
}
subgraph cluster__src_callsign {
label="FrameTlmAmicalsat::SrcCallsign";
graph[style=dotted];
src_callsign__seq [label=<
pos | size | type | id |
0 | 6 | str(ASCII) | src_callsign |
>];
}
subgraph cluster__u2_type {
label="FrameTlmAmicalsat::U2Type";
graph[style=dotted];
u2_type__seq [label=<
pos | size | type | id |
0 | ... | switch (_parent.tlm_type) | tlmsw |
>];
u2_type__seq_tlmsw_switch [label=<
case | type |
"RL" | U2RlType |
"MS" | MsType |
>];
}
}
frame_tlm_amicalsat__seq:frame_tlm_entry_sat_type -> ax25_frame__seq [style=bold];
emmn_type__seq:p_peak_type -> emmn_type__inst__p_peak_mw [color="#404040"];
emer_type__seq:time_stamps_type -> emmn_type__inst__time_stamps_sec [color="#404040"];
emmn_type__seq:t_cpu_type -> emmn_type__inst__t_cpu_degree [color="#404040"];
emmn_type__seq:v_solar_type -> emmn_type__inst__v_solar_volt [color="#404040"];
emmn_type__seq:v_in_type -> emmn_type__inst__v_in_volt [color="#404040"];
emmn_type__seq:p_in_type -> emmn_type__inst__p_in_mw [color="#404040"];
emmn_type__seq:i_in_type -> emmn_type__inst__i_in_ma [color="#404040"];
emmn_type__seq:v_cpu_type -> emmn_type__inst__v_cpu_volt [color="#404040"];
ax25_frame__seq:ax25_header_type -> ax25_header__seq [style=bold];
ax25_frame__seq:payload_type -> i_frame__seq [style=bold];
ax25_header__seq:dest_callsign_raw_type -> dest_callsign_raw__seq [style=bold];
ax25_header__seq:src_callsign_raw_type -> src_callsign_raw__seq [style=bold];
ax25_header__seq:src_ssid_raw_type -> ax25_header__inst__src_ssid [color="#404040"];
ax25_header__seq:dest_ssid_raw_type -> ax25_header__inst__dest_ssid [color="#404040"];
a1_position_type__seq:time_stamps_type -> a1_position_type__inst__time_stamps_sec [color="#404040"];
m1_type__seq:tlm_sw_type -> m1_type__seq_tlm_sw_switch [style=bold];
m1_type__seq_tlm_sw_switch:case0 -> log_type__seq [style=bold];
m1_type__seq_tlm_sw_switch:case1 -> flags_type__seq [style=bold];
i_frame__seq:tlm_type_type -> m1_type__seq:tlm_sw_type [color="#404040"];
em_log_type__seq:input_current_type -> em_log_type__inst__input_current_ma [color="#404040"];
em_log_type__seq:peak_power_type -> em_log_type__inst__peak_power_mw [color="#404040"];
emer_type__seq:time_stamps_type -> em_log_type__inst__time_stamps_sec [color="#404040"];
em_log_type__seq:input_power_type -> em_log_type__inst__input_power_mw [color="#404040"];
em_log_type__seq:boot_number_type -> em_log_type__inst__boot_number_int [color="#404040"];
em_log_type__seq:input_voltage_type -> em_log_type__inst__input_voltage_volt [color="#404040"];
em_log_type__seq:solar_panel_voltage_type -> em_log_type__inst__solar_panel_voltage_volt [color="#404040"];
a1_flag_type__seq:mode_type -> a1_flag_type__inst__mode_value [color="#404040"];
a1_flag_type__seq:faults_type -> a1_flag_type__inst__faults_value [color="#404040"];
a1_flag_type__seq:time_stamps_type -> a1_flag_type__inst__time_stamps_sec [color="#404040"];
src_callsign_raw__seq:src_callsign_ror_type -> src_callsign__seq [style=bold];
m1_type__seq:time_stamps_type -> flags_type__inst__time_stamps_sec [color="#404040"];
i_frame__seq:tlm_area_switch_type -> i_frame__seq_tlm_area_switch_switch [style=bold];
i_frame__seq_tlm_area_switch_switch:case0 -> emer_type__seq [style=bold];
i_frame__seq_tlm_area_switch_switch:case1 -> m1_type__seq [style=bold];
i_frame__seq_tlm_area_switch_switch:case2 -> v1_type__seq [style=bold];
i_frame__seq_tlm_area_switch_switch:case3 -> u2_type__seq [style=bold];
i_frame__seq_tlm_area_switch_switch:case4 -> a1_type__seq [style=bold];
i_frame__seq_tlm_area_switch_switch:case5 -> cu_type__seq [style=bold];
i_frame__seq_tlm_area_switch_switch:case6 -> cu_type__seq [style=bold];
i_frame__seq_tlm_area_switch_switch:case7 -> emer_type__seq [style=bold];
i_frame__seq:tlm_area_type -> i_frame__seq:tlm_area_switch_type [color="#404040"];
u2_rl_type__seq:cpu_temperature_type -> u2_rl_type__inst__cpu_temperature_degree [color="#404040"];
u2_rl_type__seq:time_stamps_type -> u2_rl_type__inst__time_stamps_sec [color="#404040"];
u2_rl_type__seq:cpu_voltage_type -> u2_rl_type__inst__cpu_voltage_volt [color="#404040"];
u2_rl_type__seq:flags_type -> u2_rl_type__inst__flags_hexa [color="#404040"];
u2_rl_type__seq:amplifier_temperature_type -> u2_rl_type__inst__amplifier_temperature_degree [color="#404040"];
u2_rl_type__seq:battery_voltage_type -> u2_rl_type__inst__battery_voltage_volt [color="#404040"];
cu_log_type__seq:cpu_voltage_type -> cu_log_type__inst__cpu_voltage_volt [color="#404040"];
cu_log_type__seq:cpu_temperature_type -> cu_log_type__inst__cpu_temperature_degree [color="#404040"];
cu_type__seq:time_stamps_type -> cu_log_type__inst__time_stamps_sec [color="#404040"];
v1_rl_type__seq:cpu_temperature_type -> v1_rl_type__inst__cpu_temperature_degree [color="#404040"];
v1_rl_type__seq:time_stamps_type -> v1_rl_type__inst__time_stamps_sec [color="#404040"];
v1_rl_type__seq:cpu_voltage_type -> v1_rl_type__inst__cpu_voltage_volt [color="#404040"];
v1_rl_type__seq:flags_type -> v1_rl_type__inst__flags_hexa [color="#404040"];
v1_rl_type__seq:amplifier_temperature_type -> v1_rl_type__inst__amplifier_temperature_degree [color="#404040"];
v1_rl_type__seq:battery_voltage_type -> v1_rl_type__inst__battery_voltage_volt [color="#404040"];
onyx_type__seq:time_stamps_type -> onyx_type__inst__time_stamps_sec [color="#404040"];
emer_type__seq:tlmsw_type -> emer_type__seq_tlmsw_switch [style=bold];
emer_type__seq_tlmsw_switch:case0 -> em_log_type__seq [style=bold];
emer_type__seq_tlmsw_switch:case1 -> emmn_type__seq [style=bold];
i_frame__seq:tlm_type_type -> emer_type__seq:tlmsw_type [color="#404040"];
cu_type__seq:tlmsw_type -> cu_type__seq_tlmsw_switch [style=bold];
cu_type__seq_tlmsw_switch:case0 -> onyx_type__seq [style=bold];
cu_type__seq_tlmsw_switch:case1 -> cu_log_type__seq [style=bold];
i_frame__seq:tlm_type_type -> cu_type__seq:tlmsw_type [color="#404040"];
a1_gyro_type__seq:time_stamps_type -> a1_gyro_type__inst__time_stamps_sec [color="#404040"];
a1_gyro_type__seq:giro_x_type -> a1_gyro_type__inst__giro_x_value [color="#404040"];
a1_gyro_type__seq:giro_y_type -> a1_gyro_type__inst__giro_y_value [color="#404040"];
a1_gyro_type__seq:giro_z_type -> a1_gyro_type__inst__giro_z_value [color="#404040"];
a1_mag_type__seq:time_stamps_type -> a1_mag_type__inst__time_stamps_sec [color="#404040"];
a1_mag_type__seq:mag_x_type -> a1_mag_type__inst__mag_x_value [color="#404040"];
a1_mag_type__seq:mag_y_type -> a1_mag_type__inst__mag_y_value [color="#404040"];
a1_mag_type__seq:mag_z_type -> a1_mag_type__inst__mag_z_value [color="#404040"];
a1_type__seq:tlm_sw_type -> a1_type__seq_tlm_sw_switch [style=bold];
a1_type__seq_tlm_sw_switch:case0 -> a1_flag_type__seq [style=bold];
a1_type__seq_tlm_sw_switch:case1 -> a1_mag_type__seq [style=bold];
a1_type__seq_tlm_sw_switch:case2 -> a1_gyro_type__seq [style=bold];
a1_type__seq_tlm_sw_switch:case3 -> a1_position_type__seq [style=bold];
i_frame__seq:tlm_type_type -> a1_type__seq:tlm_sw_type [color="#404040"];
ms_type__seq:current_rssi_type -> ms_type__inst__current_rssi_ma [color="#404040"];
ms_type__seq:latch_rssi_type -> ms_type__inst__latch_rssi_value [color="#404040"];
ms_type__seq:a_f_c_offset_type -> ms_type__inst__a_f_c_offset_value [color="#404040"];
ms_type__seq:time_stamps_type -> ms_type__inst__time_stamps_sec [color="#404040"];
log_type__seq:cpu_temperature_type -> log_type__inst__cpu_temperature_degree [color="#404040"];
log_type__seq:up_time_type -> log_type__inst__up_time_sec [color="#404040"];
m1_type__seq:time_stamps_type -> log_type__inst__time_stamps_sec [color="#404040"];
log_type__seq:boot_number_type -> log_type__inst__boot_number_int [color="#404040"];
log_type__seq:cpu_voltage_type -> log_type__inst__cpu_voltage_volt [color="#404040"];
dest_callsign_raw__seq:dest_callsign_ror_type -> dest_callsign__seq [style=bold];
v1_type__seq:tlmsw_type -> v1_type__seq_tlmsw_switch [style=bold];
v1_type__seq_tlmsw_switch:case0 -> v1_rl_type__seq [style=bold];
v1_type__seq_tlmsw_switch:case1 -> ms_type__seq [style=bold];
i_frame__seq:tlm_type_type -> v1_type__seq:tlmsw_type [color="#404040"];
u2_type__seq:tlmsw_type -> u2_type__seq_tlmsw_switch [style=bold];
u2_type__seq_tlmsw_switch:case0 -> u2_rl_type__seq [style=bold];
u2_type__seq_tlmsw_switch:case1 -> ms_type__seq [style=bold];
i_frame__seq:tlm_type_type -> u2_type__seq:tlmsw_type [color="#404040"];
}
telemetrydescription-master/Amicalsat/generated/frame_tlm_amicalsat.dot.png 0000664 0000000 0000000 00004301763 14420564004 0027755 0 ustar 00root root 0000000 0000000 PNG
IHDR
3 V bKGD IDATxp]g}'If#kP$9C2
%nԡRK1l[k/ M͂Ҭmf6x$knkG.TccbBh6L?R,[%+]Y~f4\>9r>~r\ rY L ,L ,L ,L ,L ,L ,L XVŃ9tPd͚5ٶm۴cՕ$ٶm[֬Y3خ
%IϛU}W_}W_}W_}W_}W_}W_}W_}W_}W_}W_}W_}W_}_sULMMM ,qE\.: mhg&