Skip to content

Commit

Permalink
initial import of Osmocom TETRA phy and lower MAC code
Browse files Browse the repository at this point in the history
  • Loading branch information
laf0rge committed Jan 19, 2011
1 parent a4c4e5a commit 7ee08fa
Show file tree
Hide file tree
Showing 45 changed files with 4,217 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
*.o
*.a
*.pyc
.*.swp
conv_enc_test
burst_test
float_to_bits
crc_test
25 changes: 25 additions & 0 deletions src/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
CFLAGS=-g -O0 -Wall `pkg-config --cflags libosmocore 2> /dev/null` -I.
LDFLAGS=`pkg-config --libs libosmocore 2> /dev/null` -losmocore

all: conv_enc_test crc_test burst_test float_to_bits

%.o: %.c
$(CC) $(CFLAGS) -c $^ -o $@

libosmo-tetra-phy.a: phy/tetra_burst_sync.o phy/tetra_burst.o
$(AR) r $@ $^

libosmo-tetra-mac.a: lower_mac/tetra_conv_enc.o tetra_tdma.o lower_mac/tetra_scramb.o lower_mac/tetra_rm3014.o lower_mac/tetra_interleave.o lower_mac/crc_simple.o tetra_common.o lower_mac/viterbi.o lower_mac/viterbi_cch.o lower_mac/viterbi_tch.o lower_mac/tetra_lower_mac.o tetra_upper_mac.o tetra_mac_pdu.o tetra_mle_pdu.o tetra_mm_pdu.o tetra_gsmtap.o
$(AR) r $@ $^

float_to_bits: float_to_bits.o

crc_test: crc_test.o tetra_common.o libosmo-tetra-mac.a

burst_test: burst_test.o libosmo-tetra-phy.a libosmo-tetra-mac.a

conv_enc_test: conv_enc_test.o testpdu.o libosmo-tetra-phy.a libosmo-tetra-mac.a
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^

clean:
@rm -f conv_enc_test crc_test burst_test float_to_bits *.o phy/*.o lower_mac/*.o *.a
74 changes: 74 additions & 0 deletions src/burst_test.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/* Test program for tetra burst synchronizer */

/* (C) 2011 by Harald Welte <[email protected]>
* All Rights Reserved
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#include <fcntl.h>
#include <sys/stat.h>

#include <osmocore/utils.h>

#include "tetra_common.h"
#include <phy/tetra_burst.h>
#include <phy/tetra_burst_sync.h>
#include "tetra_gsmtap.h"

int main(int argc, char **argv)
{
int fd;
struct tetra_rx_state *trs;

if (argc < 2) {
fprintf(stderr, "Usage: %s <file_with_1_byte_per_bit>\n", argv[0]);
exit(1);
}

fd = open(argv[1], O_RDONLY);
if (fd < 0) {
perror("open");
exit(2);
}

tetra_gsmtap_init("localhost", 0);

trs = calloc(1, sizeof(*trs));

while (1) {
uint8_t buf[64];
int len;

len = read(fd, buf, sizeof(buf));
if (len < 0) {
perror("read");
exit(1);
} else if (len == 0) {
printf("EOF");
break;
}
tetra_burst_sync_in(trs, buf, len);
}

free(trs);

exit(0);
}
Loading

0 comments on commit 7ee08fa

Please sign in to comment.