FreeCalypso > hg > e1-fake-trau
diff ft16/read_ts.c @ 2:5c18cd38c8ad
ft16: import from ice1-trau-tester/abis
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 29 Aug 2024 13:07:16 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ft16/read_ts.c Thu Aug 29 13:07:16 2024 +0000 @@ -0,0 +1,36 @@ +/* + * The function in this module gets called from Osmocom select loop + * whenever the data socket to osmo-e1d is ready for reading. + */ + +#include <stdint.h> +#include <stdbool.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +#include <osmocom/core/select.h> +#include <osmocom/isdn/i460_mux.h> + +#include "globals.h" + +uint8_t readbuf[160]; +FILE *record_file; + +int ts_fd_cb(struct osmo_fd *ofd, unsigned int what) +{ + int rc; + + rc = read(ts_fd, readbuf, 160); + if (rc != 160) { + fprintf(stderr, + "error: read from ts returned %d instead of 160\n", + rc); + exit(1); + } + if (record_file) + fwrite(readbuf, 1, 160, record_file); + osmo_i460_demux_in(&i460_ts, readbuf, 160); + transmit_e1_ts(); + return 0; +}