-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathftcom.h
More file actions
29 lines (21 loc) · 805 Bytes
/
ftcom.h
File metadata and controls
29 lines (21 loc) · 805 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#pragma once
#include <stdbool.h>
#include <inttypes.h>
#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct FTCom FTCom;
FTCom* newFTCom(bool (*updatePinTimer)(const uint8_t pinState, const uint8_t duration));
void deleteFTCom(FTCom* ftcom);
void FTCom_timeElapsed(FTCom* ftcom);
bool FTCom_transmit(FTCom* ftcom, const uint8_t* data, const uint8_t numBytes);
uint8_t FTCom_getState(FTCom* ftcom);
uint8_t FTCom_getMaxNumBytes(FTCom* ftcom);
void FTCom_setTxRole(FTCom* ftcom, uint8_t role);
bool (*updatePinTimer)(const uint8_t pinState, const uint8_t duration);
enum FTComState { FTCOM_IDLE = 0, FTCOM_TRANSMITTING = 1, FTCOM_RECEIVING = 2, FTCOM_TX_COLLISION = 3, FTCOM_INVALID_STATE = 4 };
enum FTComRole { FTCOM_MASTER = 0, FTCOM_SLAVE = 1 };
#ifdef __cplusplus
}
#endif