Skip to content

Commit

Permalink
LDC
Browse files Browse the repository at this point in the history
  • Loading branch information
losehu committed Nov 21, 2024
1 parent c543e68 commit 0cc8ba5
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 20 deletions.
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -404,6 +404,9 @@ endif
ifeq ($(ENABLE_4732SSB),1)
CFLAGS += -DENABLE_4732SSB
endif
ifeq ($(ENABLE_PMES),1)
CFLAGS += -DENABLE_PMES
endif
ifeq ($(ENABLE_MESSENGER_DELIVERY_NOTIFICATION),1)
CFLAGS += -DENABLE_MESSENGER_DELIVERY_NOTIFICATION
endif
Expand Down
26 changes: 14 additions & 12 deletions app/mdc1200.c
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ bool decode_data(void *data) {
// OP ARG ID CRC STATUS FEC bits
// 01 80 1234 2E3E 00 6580A862DD8808

crc1 = compute_crc(data, 4);
crc2 = ((uint16_t) data8[5] << 8) | (data8[4] << 0);
crc1 = compute_crc(data, 6);
crc2 = ((uint16_t) data8[7] << 8) | (data8[6] << 0);

return (crc1 == crc2) ? true : false;
}
Expand Down Expand Up @@ -215,7 +215,7 @@ uint8_t *encode_data(void *data) {
return data8 + (MDC1200_FEC_K * 2);
}

unsigned int MDC1200_encode_single_packet(void *data, const uint8_t op, const uint8_t arg, const uint16_t unit_id) {
unsigned int MDC1200_encode_single_packet(void *data, const uint8_t op, const uint8_t arg, const uint32_t unit_id) {
unsigned int size;
uint16_t crc;
uint8_t *p = (uint8_t *) data;
Expand All @@ -227,12 +227,14 @@ unsigned int MDC1200_encode_single_packet(void *data, const uint8_t op, const ui

p[0] = op;
p[1] = arg;
p[2] = (unit_id >> 8) & 0x00ff;
p[3] = (unit_id >> 0) & 0x00ff;
crc = compute_crc(p, 4);
p[4] = (crc >> 0) & 0x00ff;
p[5] = (crc >> 8) & 0x00ff;
p[6] = 0; // unknown field (00 for PTTIDs, 76 for STS and MSG)
p[2] = (unit_id >> 24) & 0x000000ff;
p[3] = (unit_id >> 16) & 0x000000ff;
p[4] = (unit_id >> 8) & 0x000000ff;
p[5] = (unit_id ) & 0x000000ff;
crc = compute_crc(p, 6);
p[6] = (crc >> 0) & 0x00ff;
p[7] = (crc >> 8) & 0x00ff;
p[8] = 0; // unknown field (00 for PTTIDs, 76 for STS and MSG)

p = encode_data(p);

Expand Down Expand Up @@ -266,7 +268,7 @@ bool MDC1200_process_rx_data(
//const bool inverted,
uint8_t *op,
uint8_t *arg,
uint16_t *unit_id) {
uint32_t *unit_id) {
const uint8_t *buffer8 = (const uint8_t *) buffer;
unsigned int index;

Expand Down Expand Up @@ -353,7 +355,7 @@ bool MDC1200_process_rx_data(
// extract the info from the packet
*op = rx.data[0];
*arg = rx.data[1];
*unit_id = ((uint16_t) rx.data[2] << 8) | (rx.data[3] << 0);
*unit_id = ((uint16_t) rx.data[2] << 24) | (rx.data[3] << 16)|(rx.data[4] << 8)|(rx.data[5] );


// reset the detector
Expand All @@ -373,7 +375,7 @@ unsigned int mdc1200_rx_buffer_index = 0;

uint8_t mdc1200_op;
uint8_t mdc1200_arg;
uint16_t mdc1200_unit_id;
uint32_t mdc1200_unit_id;
uint8_t mdc1200_rx_ready_tick_500ms;


Expand Down
6 changes: 3 additions & 3 deletions app/mdc1200.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,18 +94,18 @@ extern const uint8_t mdc1200_sync_suc_xor[5];

extern uint8_t mdc1200_op;
extern uint8_t mdc1200_arg;
extern uint16_t mdc1200_unit_id;
extern uint32_t mdc1200_unit_id;

bool mdc1200_contact_find(uint16_t mdc_id, char *contact);

extern uint8_t mdc1200_rx_buffer[5 + (MDC1200_FEC_K * 2)];
extern unsigned int mdc1200_rx_buffer_index;

bool MDC1200_process_rx_data(const void *buffer, const unsigned int size, uint8_t *op, uint8_t *arg, uint16_t *unit_id);
bool MDC1200_process_rx_data(const void *buffer, const unsigned int size, uint8_t *op, uint8_t *arg, uint32_t *unit_id);

extern uint8_t mdc1200_rx_ready_tick_500ms;

unsigned int MDC1200_encode_single_packet(void *data, const uint8_t op, const uint8_t arg, const uint16_t unit_id);
unsigned int MDC1200_encode_single_packet(void *data, const uint8_t op, const uint8_t arg, const uint32_t unit_id);

void MDC1200_reset_rx(void);

Expand Down
2 changes: 1 addition & 1 deletion driver/bk4819.c
Original file line number Diff line number Diff line change
Expand Up @@ -1863,7 +1863,7 @@ void BK4819_stop_tones(const bool tx)
}


void BK4819_send_MDC1200(const uint8_t op, const uint8_t arg, const uint16_t id, const bool long_preamble)
void BK4819_send_MDC1200(const uint8_t op, const uint8_t arg, const uint32_t id, const bool long_preamble)
{
uint16_t fsk_reg59;
uint8_t packet[42];
Expand Down
2 changes: 1 addition & 1 deletion driver/bk4819.h
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ void BK4819_Enable_AfDac_DiscMode_TxDsp(void);
void BK4819_GetVoxAmp(uint16_t *pResult);
void BK4819_SetScrambleFrequencyControlWord(uint32_t Frequency);
void BK4819_PlayDTMFEx(bool bLocalLoopback, char Code);
void BK4819_send_MDC1200(const uint8_t op, const uint8_t arg, const uint16_t id, const bool long_preamble);
void BK4819_send_MDC1200(const uint8_t op, const uint8_t arg, const uint32_t id, const bool long_preamble);

void BK4819_stop_tones(const bool tx);
void BK4819_start_tone(const uint16_t frequency, const unsigned int level, const bool tx, const bool tx_mute);
Expand Down
4 changes: 2 additions & 2 deletions settings.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,8 @@ void SETTINGS_InitEEPROM(void)
// 0E90..0E97
EEPROM_ReadBuffer(0x0E90, Data, 8);
gEeprom.BEEP_CONTROL = Data[0] & 1;

gEeprom.MDC1200_ID =((uint16_t) (Data[2] << 8))|((uint16_t)(Data[1] ));
//TODO:MDC iD定义
gEeprom.MDC1200_ID =0x12345678;//((uint16_t) (Data[2] << 8))|((uint16_t)(Data[1] ));
// gEeprom.KEY_1_LONG_PRESS_ACTION = (Data[2] < ACTION_OPT_LEN) ? Data[2] : ACTION_OPT_FLASHLIGHT;
// gEeprom.KEY_2_SHORT_PRESS_ACTION = (Data[3] < ACTION_OPT_LEN) ? Data[3] : ACTION_OPT_SCAN;
// gEeprom.KEY_2_LONG_PRESS_ACTION = (Data[4] < ACTION_OPT_LEN) ? Data[4] : ACTION_OPT_NONE;
Expand Down
2 changes: 1 addition & 1 deletion ui/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -890,7 +890,7 @@ void UI_DisplayMain(void) {
print_col = 29;
} else {
#endif
sprintf(String, "ID %04X", mdc1200_unit_id);
sprintf(String, "ID %08X", mdc1200_unit_id);
print_col = 40;
#ifdef ENABLE_MDC1200_CONTACT
}
Expand Down

0 comments on commit 0cc8ba5

Please sign in to comment.