-
Notifications
You must be signed in to change notification settings - Fork 10
Software defined modem example
Oleksiy Kebkal edited this page Jan 25, 2017
·
1 revision
Go to the directory with checked out evins and run:
make
In the example below is assumed, that you have two SDM EvoLogics modems with IP addresses 192.168.0.178 and 192.168.0.179.
Create configuration file /usr/local/etc/fsm.conf:
{module, m1, [{role, sdmcli, iface, {socket, "0.0.0.0", 7001, server}},
{role, sdm, iface, {socket, "192.168.0.137", 4200, client}},
{mfa, mod_sdm, run, []}]}.
{module, m2, [{role, sdmcli, iface, {socket, "0.0.0.0", 7002, server}},
{role, sdm, iface, {socket, "192.168.0.138", 4200, client}},
{mfa, mod_sdm, run, []}]}.
Switch the modem to SDM mode by sending ATP command on both the modems:
> nc 192.168.0.137 9200
ATP
INITIATION PHY
AT?S
Local Address: 2
Remote Address: 0
Acoustic Link Status: PHY
Pool Status: 0 packages, 16384 bytes free
Promiscuous Mode: ON
Go to the directory with checked out **evins** and run:
_rel/evins/bin/evins console
> nc localhost 7001
> nc localhost 7002
config_dsp,<threshold>,<gain>,<source_level>
> nc localhost 7001
config,300,0,3
report,config,1
ref,<path>
nc localhost 7001
ref,/tmp/ref
report,ref,1024
rx,<samples>,<path>
> nc localhost 7001
rx,10000,/tmp/rx
> nc localhost 7001
rx,10000,/tmp/rx
rx
stop
wc /tmp/rx
10240 10240 48530 /tmp/rx
Transmission signal must be generated as a sequence of short integer samples, one sample per line. Transmission signal must begin with the signal, that is used as a reference on the reception side. For transmission use the command:
tx,<path>
nc localhost 7001
tx,/tmp/tx
report,tx,10240
> nc localhost 7001
ref,/tmp/ref
report,ref,1024
config,300,0,3
report,config,1
tx,/tmp/tx
report,tx,10240
|
> nc localhost 7002
ref,/tmp/ref
report,ref,1024
config,300,0,3
report,config,1
rx,10000,/tmp/rx
rx
stop |