Skip to content

Commit 868ea96

Browse files
committed
Heartbeat
1 parent 11a0871 commit 868ea96

2 files changed

Lines changed: 13 additions & 0 deletions

File tree

firmware/chipignite/polysat/include/slip.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ typedef enum slip_cmd_t {
4040
SLIP_CMD_NACK = (uint8_t)0x03,
4141
/* End of transmission command */
4242
SLIP_CMD_EOT = (uint8_t)0x04,
43+
/* Heartbeat command */
44+
SLIP_CMD_HEARTBEAT = (uint8_t)0x05,
4345
} slip_cmd_t;
4446

4547
/* Represents a SLIP packet header (stored in big-endian/network-order) */
@@ -65,6 +67,7 @@ typedef struct slip_packet_t {
6567
/* Begin function prototype declarations */
6668

6769
extern void slip_send_packet(const uint8_t* data, uint16_t data_len, uint8_t cmd, void (*send_byte)(uint8_t));
70+
extern void slip_send_heartbeat(void (*send_byte)(uint8_t));
6871
extern uint16_t crc16_ccitt_false(const uint8_t* data, uint16_t len);
6972
extern void slip_receive_packet(uint8_t input_byte, slip_packet_t* decoded_packet, uint8_t (*read_byte)(void));
7073

firmware/chipignite/polysat/src/slip.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,16 @@ void slip_send_packet(const uint8_t* data, uint16_t data_len, uint8_t cmd, void
5858
send_byte(SLIP_END);
5959
}
6060

61+
/** @brief Send a heartbeat packet
62+
*
63+
* Sends a heartbeat packet to the host.
64+
*
65+
* @param send_byte A function to send a byte to the output stream.
66+
*/
67+
void slip_send_heartbeat(void (*send_byte)(uint8_t)) {
68+
slip_send_packet(NULL, 0, SLIP_CMD_HEARTBEAT, send_byte);
69+
}
70+
6171
/** @brief Compute a CRC-16/CCITT-FALSE checksum
6272
*
6373
* Cyclic Redundancy Check (CRC) is checksum algorithm used to detect errors in data transmissions.

0 commit comments

Comments
 (0)