27 lines
1.0 KiB
C
27 lines
1.0 KiB
C
|
|
#ifndef P25P1_CHECK_NID_H_3af071e917ea43fdb51326e2cbfbde0a
|
|
#define P25P1_CHECK_NID_H_3af071e917ea43fdb51326e2cbfbde0a
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* Checks a NID value, returns the fixed NAC, DUID and also an indication if it failed to decode the NID.
|
|
* \param bch_code Input. An array to the 63 bytes, each containing one bit of the NID. This includes the
|
|
* NAC (12 bits), DUID (4 bits) and 47 bits of BCH parity.
|
|
* \param new_nac Output. An address where to store the calculated NAC value after error correction. Should
|
|
* be large enough to accommodate for an integer.
|
|
* \param new_duid Output. An address where to store the calculated DUID value after error correction. Should
|
|
* be able to accommodate 3 chars.
|
|
* \param parity Input. The parity value read.
|
|
* \return 0 if there were errors processing the NID.
|
|
*/
|
|
int check_NID(char* bch_code, int* new_nac, char* new_duid, unsigned char parity);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // P25P1_CHECK_NID_H_3af071e917ea43fdb51326e2cbfbde0a
|