STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
link.cpp
Go to the documentation of this file.
1
#include "
link.h
"
2
3
#include "
radio.h
"
4
5
namespace
radio_link
{
6
7
ArmAction
Link::poll
(uint32_t now_ms) {
8
uint8_t len = 0;
9
10
gate_
.tick(now_ms);
11
12
const
RadioStatus
rs =
radio_receive
(
buf_
,
sizeof
buf_
, len);
13
if
(rs ==
RadioStatus::NoData
) {
14
return
ArmAction::None
;
15
}
16
if
(rs ==
RadioStatus::ErrTooLong
) {
17
frames_dropped_
++;
// a packet arrived but could not be used
18
return
ArmAction::None
;
19
}
20
if
(rs !=
RadioStatus::Ok
) {
21
radio_errors_
++;
// the radio itself did not answer
22
return
ArmAction::None
;
23
}
24
if
(
decode_frame
(
buf_
, len,
frame_
) !=
FrameStatus::Ok
) {
25
frames_dropped_
++;
26
return
ArmAction::None
;
27
}
28
frames_ok_
++;
29
return
gate_
.on_frame(
frame_
, now_ms);
30
}
31
32
}
// namespace radio_link
radio_link::Link::gate_
ArmGate gate_
Definition
link.h:46
radio_link::Link::radio_errors_
uint32_t radio_errors_
Definition
link.h:49
radio_link::Link::buf_
uint8_t buf_[kLoraMaxPacket]
Definition
link.h:52
radio_link::Link::frame_
Frame frame_
Definition
link.h:53
radio_link::Link::frames_dropped_
uint32_t frames_dropped_
Definition
link.h:48
radio_link::Link::poll
ArmAction poll(uint32_t now_ms)
Drain at most one waiting packet (the SX1262 holds one at a time, so do not loop here; call again on ...
Definition
link.cpp:7
radio_link::Link::frames_ok_
uint32_t frames_ok_
Definition
link.h:47
link.h
Glue: radio_receive() -> decode_frame() -> ArmGate.
radio_link
Definition
sx1262.cpp:5
radio_link::radio_receive
RadioStatus radio_receive(uint8_t *buf, uint8_t max_len, uint8_t &len)
Definition
radio_task.cpp:178
radio_link::decode_frame
FrameStatus decode_frame(const uint8_t *buf, size_t len, Frame &out)
Parse and validate a received packet.
Definition
frame.cpp:63
radio_link::ArmAction
ArmAction
Definition
arm_gate.h:40
radio_link::ArmAction::None
@ None
Definition
arm_gate.h:41
radio_link::FrameStatus::Ok
@ Ok
Definition
frame.h:60
radio_link::RadioStatus
RadioStatus
Definition
radio.h:10
radio_link::RadioStatus::ErrTooLong
@ ErrTooLong
Definition
radio.h:13
radio_link::RadioStatus::Ok
@ Ok
Definition
radio.h:11
radio_link::RadioStatus::NoData
@ NoData
Definition
radio.h:14
radio.h
firmware
Flight_Computer
src
radio
link.cpp
Generated by
1.15.0