Commit 6384517c authored by Laurent THOMAS's avatar Laurent THOMAS

Better code for PUCCH2 decoding

parent bf69131c
...@@ -651,6 +651,10 @@ void log_dump(int component, ...@@ -651,6 +651,10 @@ void log_dump(int component,
wbuf=malloc((buffsize * 10) + 64 + MAX_LOG_TOTAL); wbuf=malloc((buffsize * 10) + 64 + MAX_LOG_TOTAL);
break; break;
case LOG_DUMP_C16:
wbuf = malloc((buffsize * 10) + 64 + MAX_LOG_TOTAL);
break;
case LOG_DUMP_CHAR: case LOG_DUMP_CHAR:
default: default:
wbuf=malloc((buffsize * 3 ) + 64 + MAX_LOG_TOTAL); wbuf=malloc((buffsize * 3 ) + 64 + MAX_LOG_TOTAL);
...@@ -669,6 +673,21 @@ void log_dump(int component, ...@@ -669,6 +673,21 @@ void log_dump(int component,
pos = pos + sprintf(wbuf+pos,"%04.4lf ", (double)((double *)buffer)[i]); pos = pos + sprintf(wbuf+pos,"%04.4lf ", (double)((double *)buffer)[i]);
break; break;
case LOG_DUMP_I16: {
int16_t *tmp = ((int16_t *)buffer) + i;
pos = pos + sprintf(wbuf + pos, "%d, ", *tmp);
} break;
case LOG_DUMP_C16: {
int16_t *tmp = ((int16_t *)buffer) + i * 2;
pos = pos + sprintf(wbuf + pos, "(%d,%d), ", *tmp, *(tmp + 1));
} break;
case LOG_DUMP_C32: {
int32_t *tmp = ((int32_t *)buffer) + i * 2;
pos = pos + sprintf(wbuf + pos, "(%d,%d), ", *tmp, *(tmp + 1));
} break;
case LOG_DUMP_CHAR: case LOG_DUMP_CHAR:
default: default:
pos = pos + sprintf(wbuf+pos,"%02x ", (unsigned char)((unsigned char *)buffer)[i]); pos = pos + sprintf(wbuf+pos,"%02x ", (unsigned char)((unsigned char *)buffer)[i]);
......
...@@ -335,6 +335,9 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int ...@@ -335,6 +335,9 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
* @{*/ * @{*/
#define LOG_DUMP_CHAR 0 #define LOG_DUMP_CHAR 0
#define LOG_DUMP_DOUBLE 1 #define LOG_DUMP_DOUBLE 1
#define LOG_DUMP_I16 2
#define LOG_DUMP_C16 3
#define LOG_DUMP_C32 4
// debugging macros // debugging macros
#define LOG_F LOG_I /* because LOG_F was originaly to dump a message or buffer but is also used as a regular level...., to dump use LOG_DUMPMSG */ #define LOG_F LOG_I /* because LOG_F was originaly to dump a message or buffer but is also used as a regular level...., to dump use LOG_DUMPMSG */
......
This diff is collapsed.
...@@ -406,8 +406,8 @@ int main(int argc, char **argv) ...@@ -406,8 +406,8 @@ int main(int argc, char **argv)
if ((format < 2) && (actual_payload == 4)) do_DTX=1; if ((format < 2) && (actual_payload == 4)) do_DTX=1;
if (random_payload) { if (random_payload) {
srand(time(NULL)); // Initialization, should only be called once. double tmp = uniformrandom();
actual_payload = rand(); // Returns a pseudo-random integer between 0 and RAND_MAX. memcpy(&actual_payload, &tmp, sizeof(actual_payload));
} }
actual_payload &= nr_bit < 64 ? (1UL << nr_bit) - 1: 0xffffffffffffffff; actual_payload &= nr_bit < 64 ? (1UL << nr_bit) - 1: 0xffffffffffffffff;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment