osmocom-analog/src/nmt/frame.h

85 lines
2.1 KiB
C

#define NMT_MESSAGE_1a 0
#define NMT_MESSAGE_1b 1
#define NMT_MESSAGE_2a 2
#define NMT_MESSAGE_2b 3
#define NMT_MESSAGE_2c 4
#define NMT_MESSAGE_2d 5
#define NMT_MESSAGE_2f 6
#define NMT_MESSAGE_3a 7
#define NMT_MESSAGE_3b 8
#define NMT_MESSAGE_3c 9
#define NMT_MESSAGE_4 10
#define NMT_MESSAGE_5a 11
#define NMT_MESSAGE_5b 12
#define NMT_MESSAGE_6 13
#define NMT_MESSAGE_7 14
#define NMT_MESSAGE_10a 15
#define NMT_MESSAGE_10b 16
#define NMT_MESSAGE_10c 17
#define NMT_MESSAGE_11a 18
#define NMT_MESSAGE_11b 19
#define NMT_MESSAGE_12 20
#define NMT_MESSAGE_13a 21
#define NMT_MESSAGE_13b 22
#define NMT_MESSAGE_14a 23
#define NMT_MESSAGE_14b 24
#define NMT_MESSAGE_15 25
#define NMT_MESSAGE_16 26
#define NMT_MESSAGE_20a 27
#define NMT_MESSAGE_20b 28
#define NMT_MESSAGE_20c 29
#define NMT_MESSAGE_20d 30
#define NMT_MESSAGE_20e 31
#define NMT_MESSAGE_21b 32
#define NMT_MESSAGE_21c 33
#define NMT_MESSAGE_22 34
#define NMT_MESSAGE_25a 35
#define NMT_MESSAGE_25b 36
#define NMT_MESSAGE_25c 37
#define NMT_MESSAGE_25d 38
#define NMT_MESSAGE_26 39
#define NMT_MESSAGE_27 40
#define NMT_MESSAGE_28 41
#define NMT_MESSAGE_30 42
typedef struct frame {
uint8_t index;
uint16_t channel_no;
uint16_t tc_no;
uint8_t traffic_area;
uint8_t ms_country;
uint32_t ms_number;
uint8_t tariff_class;
uint32_t line_signal;
uint32_t digit;
uint64_t idle;
uint8_t chan_act;
uint32_t meas_order;
uint32_t meas;
uint8_t prefix;
uint32_t supervisory;
uint16_t ms_password;
uint8_t area_info;
uint64_t additional_info;
uint32_t rand;
uint64_t sres;
uint16_t limit_strength_eval;
uint16_t c;
} frame_t;
int init_frame(void);
uint64_t nmt_encode_channel(int channel, int power);
int nmt_decode_channel(uint64_t value, int *channel, int *power);
void nmt_value2digits(uint64_t value, char *digits, int num);
uint64_t nmt_digits2value(const char *digits, int num);
char nmt_value2digit(uint64_t value);
uint16_t nmt_encode_area_no(uint8_t area_no);
const char *nmt_frame_name(int index);
const char *encode_frame(frame_t *frame, int debug);
int decode_frame(frame_t *frame, const char *bits, enum nmt_direction direction, int callack);