Compare commits
3 Commits
cc93d9cdcc
...
run-in-vag
Author | SHA1 | Date | |
---|---|---|---|
7cc8e248ba | |||
fd77df017c | |||
a10ef5848b |
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@ logs/*
|
||||
!logs
|
||||
config/default.toml
|
||||
certs
|
||||
.vagrant/**
|
@ -6,15 +6,23 @@ RUN apt-get install -y build-essential
|
||||
RUN apt-get install -y curl
|
||||
RUN apt-get install -y python-minimal
|
||||
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash
|
||||
#needed for npm
|
||||
RUN apt-get install -y nodejs
|
||||
|
||||
WORKDIR /simulator
|
||||
ADD . /simulator
|
||||
|
||||
RUN rm package-lock.json && rm -rf node_modules && rm -rf ~/.node-gyp
|
||||
|
||||
|
||||
RUN apt-get install -y libasound2-dev
|
||||
RUN npm i -g node-gyp
|
||||
RUN apt install -y alsa-base pulseaudio
|
||||
RUN apt-get install -y avahi-utils
|
||||
RUN apt-get install -y alsa-utils
|
||||
# RUN modprobe snd_bcm2835
|
||||
|
||||
RUN npm install --unsafe-perm
|
||||
RUN export "PULSE_SERVER=unix:/path/to/pulseaudio/socket"
|
||||
|
||||
# docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY --device /dev/snd
|
54
README.md
54
README.md
@ -3,10 +3,36 @@
|
||||
> openssl: 1.0.2g<br/>
|
||||
> node: 8.16.0
|
||||
|
||||
## Run in docker
|
||||
|
||||
```
|
||||
docker build -t linx-simulator .
|
||||
docker run -it --rm linx-simulator
|
||||
NODE_TLS_REJECT_UNAUTHORIZED='0' node ./index.js --path="./config/dev/"
|
||||
```
|
||||
|
||||
Errors because audio driver:
|
||||
|
||||
```
|
||||
ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
|
||||
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
|
||||
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
|
||||
ALSA lib conf.c:4292:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
|
||||
```
|
||||
|
||||
* [How audio on Linux works](https://comp0016-team-24.github.io/dev/problem-solving/2020/10/30/passing-audio-into-docker.html)
|
||||
* `docker run -v /run/user/1000/pulse/native:/run/user/1000/pulse/native -e PULSE_SERVER=unix:/run/user/1000/pulse/native -u 1000:1000`
|
||||
* [Play sound in docker on MacOS](https://stackoverflow.com/questions/40136606/how-to-expose-audio-from-docker-container-to-a-mac)
|
||||
* [Use sound in docker from Linux](https://volkanpaksoy.com/archive/2019/12/05/Using-Audio-in-Docker-Container/)
|
||||
* [SO - run apps using audio in a docker container](https://stackoverflow.com/questions/28985714/run-apps-using-audio-in-a-docker-container/28995539#28995539)
|
||||
* run with `-v /run/user/$UID/pulse/native:/path/to/pulseaudio/socket`
|
||||
|
||||
|
||||
|
||||
|
||||
## Requirements:
|
||||
```sh
|
||||
curl -sL [https://deb.nodesource.com/setup_8.x](https://deb.nodesource.com/setup_8.x) | sudo -E bash -
|
||||
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs
|
||||
sudo apt-get install -y build-essential
|
||||
install python 2.7
|
||||
@ -18,9 +44,11 @@ sudo npm install --unsafe-perm
|
||||
|
||||
## How to guide how to configure units and the simulator
|
||||
|
||||
<br/>
|
||||
**1. Insert Groups** <br/>
|
||||
|
||||
### 1. Insert Groups
|
||||
|
||||
Groups will be inserted using the following script directly on the database:
|
||||
|
||||
```sql
|
||||
set search_path to public;
|
||||
|
||||
@ -53,15 +81,19 @@ BEGIN
|
||||
end; $$;
|
||||
```
|
||||
|
||||
<br/>
|
||||
**2. Insert units** <br/>
|
||||
|
||||
### 2. Insert units
|
||||
|
||||
The units will be inserted from the provisioning(**Units -> Import from file**) and the **file_name.xlsx** file will have the following format:
|
||||
|
||||

|
||||
|
||||
<br/>
|
||||
**3. Simulator configuration:** <br/>
|
||||
|
||||
### 3. Simulator configuration
|
||||
|
||||
For the simulation to simulate **in a period**, we must put the **delay_between_clients setting in settings** (the value is in milliseconds).<br/>
|
||||
Example in **config**:<br/>
|
||||
Example in **config**
|
||||
|
||||
```toml
|
||||
[mumble]
|
||||
port = '5668'
|
||||
@ -175,6 +207,12 @@ Steps to do in VM:
|
||||
NODE_TLS_REJECT_UNAUTHORIZED='0' node ./index.js --path="./config/dev/"
|
||||
|
||||
|
||||
Install plugin for virtual box guest additions:
|
||||
|
||||
vagrant plugin install vagrant-vbguest
|
||||
|
||||
|
||||
|
||||
### Problems / to do
|
||||
|
||||
It worked once but now it does not work, don't know why.
|
||||
|
40
Vagrantfile
vendored
40
Vagrantfile
vendored
@ -12,7 +12,22 @@ Vagrant.configure("2") do |config|
|
||||
|
||||
# Every Vagrant development environment requires a box. You can search for
|
||||
# boxes at https://vagrantcloud.com/search.
|
||||
config.vm.box = "bento/ubuntu-16.04"
|
||||
# config.vm.box = "base"
|
||||
config.vm.box = "ubuntu/hirsute64"
|
||||
|
||||
# require plugin https://github.com/leighmcculloch/vagrant-docker-compose
|
||||
# config.vagrant.plugins = "vagrant-docker-compose"
|
||||
|
||||
# install docker and docker-compose
|
||||
config.vm.provision :docker
|
||||
# config.vm.provision :docker_compose
|
||||
|
||||
config.vm.provider "virtualbox" do |vb|
|
||||
vb.customize ["modifyvm", :id, "--ioapic", "on"]
|
||||
vb.customize ["modifyvm", :id, "--memory", "1024"]
|
||||
vb.customize ["modifyvm", :id, "--cpus", "1"]
|
||||
end
|
||||
|
||||
|
||||
# Disable automatic box update checking. If you disable this, then
|
||||
# boxes will only be checked for updates when the user runs
|
||||
@ -37,10 +52,7 @@ Vagrant.configure("2") do |config|
|
||||
# Create a public network, which generally matched to bridged network.
|
||||
# Bridged networks make the machine appear as another physical device on
|
||||
# your network.
|
||||
config.vm.network "public_network"
|
||||
|
||||
config.ssh.forward_x11 = true
|
||||
config.ssh.forward_agent = true
|
||||
# config.vm.network "public_network"
|
||||
|
||||
# Share an additional folder to the guest VM. The first argument is
|
||||
# the path on the host to the actual folder. The second argument is
|
||||
@ -52,18 +64,13 @@ Vagrant.configure("2") do |config|
|
||||
# backing providers for Vagrant. These expose provider-specific options.
|
||||
# Example for VirtualBox:
|
||||
#
|
||||
config.vm.provider "virtualbox" do |vb|
|
||||
# Display the VirtualBox GUI when booting the machine
|
||||
# config.vm.provider "virtualbox" do |vb|
|
||||
# # Display the VirtualBox GUI when booting the machine
|
||||
# vb.gui = true
|
||||
vb.customize [
|
||||
"modifyvm", :id,
|
||||
"--audio", "coreaudio",
|
||||
"--audiocontroller", "hda"
|
||||
]
|
||||
|
||||
# Customize the amount of memory on the VM:
|
||||
vb.memory = "1024"
|
||||
end
|
||||
#
|
||||
# # Customize the amount of memory on the VM:
|
||||
# vb.memory = "1024"
|
||||
# end
|
||||
#
|
||||
# View the documentation for the provider you are using for more
|
||||
# information on available options.
|
||||
@ -75,5 +82,4 @@ Vagrant.configure("2") do |config|
|
||||
# apt-get update
|
||||
# apt-get install -y apache2
|
||||
# SHELL
|
||||
config.vm.provision "shell", path: "install.sh", privileged: true
|
||||
end
|
||||
|
93
Vagrantfile.bak
Normal file
93
Vagrantfile.bak
Normal file
@ -0,0 +1,93 @@
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
||||
# configures the configuration version (we support older styles for
|
||||
# backwards compatibility). Please don't change it unless you know what
|
||||
# you're doing.
|
||||
Vagrant.configure("2") do |config|
|
||||
# The most common configuration options are documented and commented below.
|
||||
# For a complete reference, please see the online documentation at
|
||||
# https://docs.vagrantup.com.
|
||||
|
||||
# Every Vagrant development environment requires a box. You can search for
|
||||
# boxes at https://vagrantcloud.com/search.
|
||||
config.vm.box = "ubuntu/xenial64"
|
||||
|
||||
# Disable automatic box update checking. If you disable this, then
|
||||
# boxes will only be checked for updates when the user runs
|
||||
# `vagrant box outdated`. This is not recommended.
|
||||
# config.vm.box_check_update = false
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine. In the example below,
|
||||
# accessing "localhost:8080" will access port 80 on the guest machine.
|
||||
# NOTE: This will enable public access to the opened port
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine and only allow access
|
||||
# via 127.0.0.1 to disable public access
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
|
||||
|
||||
# Create a private network, which allows host-only access to the machine
|
||||
# using a specific IP.
|
||||
# config.vm.network "private_network", ip: "192.168.33.10"
|
||||
|
||||
# Create a public network, which generally matched to bridged network.
|
||||
# Bridged networks make the machine appear as another physical device on
|
||||
# your network.
|
||||
config.vm.network "public_network"
|
||||
|
||||
config.ssh.forward_x11 = true
|
||||
config.ssh.forward_agent = true
|
||||
|
||||
# Share an additional folder to the guest VM. The first argument is
|
||||
# the path on the host to the actual folder. The second argument is
|
||||
# the path on the guest to mount the folder. And the optional third
|
||||
# argument is a set of non-required options.
|
||||
# config.vm.synced_folder "../data", "/vagrant_data"
|
||||
config.vm.synced_folder ".", "/vagrant_data"
|
||||
|
||||
# Provider-specific configuration so you can fine-tune various
|
||||
# backing providers for Vagrant. These expose provider-specific options.
|
||||
# Example for VirtualBox:
|
||||
#
|
||||
config.vm.provider "virtualbox" do |vb|
|
||||
# Display the VirtualBox GUI when booting the machine
|
||||
# vb.gui = true
|
||||
# vb.customize [
|
||||
# "modifyvm", :id,
|
||||
# "--audio", "coreaudio",
|
||||
# "--audiocontroller", "hda"
|
||||
# ]
|
||||
|
||||
# Customize the amount of memory on the VM:
|
||||
vb.memory = "2024"
|
||||
end
|
||||
#
|
||||
# View the documentation for the provider you are using for more
|
||||
# information on available options.
|
||||
|
||||
# Enable provisioning with a shell script. Additional provisioners such as
|
||||
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
|
||||
# documentation for more information about their specific syntax and use.
|
||||
# config.vm.provision "shell", inline: <<-SHELL
|
||||
# apt-get update
|
||||
# apt-get install -y apache2
|
||||
# SHELL
|
||||
|
||||
# config.vm.provision "shell", inline: <<-SHELL
|
||||
# sudo apt-get update
|
||||
# sudo apt-get -y install dkms
|
||||
|
||||
# #https://wiki.ubuntu.com/Audio/UpgradingAlsa/DKMS
|
||||
# wget http://ppa.launchpad.net/ubuntu-audio-dev/alsa-daily/ubuntu/pool/main/o/oem-audio-hda-daily-dkms/oem-audio-hda-daily-dkms_0.201509251532~ubuntu14.04.1_all.deb
|
||||
# sudo dpkg -i oem-audio-hda-daily-dkms_0.201509251532~ubuntu14.04.1_all.deb
|
||||
# rm oem-audio-hda-daily-dkms_0.201509251532~ubuntu14.04.1_all.deb
|
||||
# sudo apt-get -y install python-dev ipython python-numpy python-matplotlib python-scipy cython alsa-utils paman
|
||||
# sudo usermod -a -G audio vagrant
|
||||
# SHELL
|
||||
|
||||
config.vm.provision "shell", path: "install.sh", privileged: true
|
||||
end
|
@ -17,23 +17,37 @@ accept_untrusted_certs = true
|
||||
[settings]
|
||||
max_fails = 3
|
||||
send_voice = true
|
||||
send_gps = 'true'
|
||||
send_group_monitoring_before_each_call = 'true'
|
||||
send_gps = true
|
||||
gps_report_interval = 10000 # The interval in which the GPS is sent
|
||||
gps_lat_start_point = 46.217802
|
||||
gps_lng_start_point = 24.776126
|
||||
delay_between_clients = 300
|
||||
testing_duration = 600 # seconds
|
||||
testing_duration = 15 # seconds
|
||||
|
||||
[assets]
|
||||
#ids = [ 8089 ]
|
||||
ids = [ 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098 ]
|
||||
|
||||
#ids = [
|
||||
# 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502
|
||||
# 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098,
|
||||
# 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108
|
||||
#]
|
||||
|
||||
ids = [
|
||||
5488
|
||||
]
|
||||
#ids = [
|
||||
# 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098,
|
||||
# 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108
|
||||
#]
|
||||
|
||||
|
||||
#ids = [
|
||||
# 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098,
|
||||
# 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108,
|
||||
# 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118,
|
||||
# 8119, 8120, 8121, 8122, 8123, 8124, 8125, 8126, 8127, 8128
|
||||
#]
|
||||
|
||||
[sounds]
|
||||
#sound = 'sound.mp3'
|
||||
#sound = 'Donald Trump Sings I Will Survive (64 kbps).mp3'
|
||||
#sounds_total_number = 20
|
||||
tracks = ['1.mp3','2.mp3','3.mp3','4.mp3','5.mp3','6.mp3','7.mp3','8.mp3','9.mp3','10.mp3','11.mp3','12.mp3','13.mp3','14.mp3','15.mp3','16.mp3','17.mp3','18.mp3','19.mp3']
|
||||
|
@ -17,50 +17,62 @@ accept_untrusted_certs = true
|
||||
[settings]
|
||||
max_fails = 3
|
||||
send_voice = true
|
||||
send_gps = false
|
||||
send_gps = true
|
||||
gps_report_interval = 10000 # The interval in which the GPS is sent
|
||||
gps_lat_start_point = 46.217802
|
||||
gps_lng_start_point = 24.776126
|
||||
delay_between_clients = 300
|
||||
testing_duration = 6000 # seconds
|
||||
testing_period = 1
|
||||
|
||||
[assets]
|
||||
#ids = [ 5496 ]
|
||||
#VOICE and GPS Stag
|
||||
|
||||
#ids = [ 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505 ]
|
||||
#ids = [ 5483 ]
|
||||
|
||||
#ids = [
|
||||
# 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505,
|
||||
# 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515
|
||||
# 5482,5483,5484,5485,5486,5487,5488,5489,5490,5491
|
||||
#]
|
||||
|
||||
ids = [
|
||||
5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505,
|
||||
5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515,
|
||||
5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525,
|
||||
5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535
|
||||
5482,5483,5484,5485,5486,5487,5488,5489,5490,5491,
|
||||
5492,5493,5494,5495,5496,5497,5498,5499,5500,5501
|
||||
]
|
||||
|
||||
#ids = [
|
||||
# 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098,
|
||||
# 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108
|
||||
# 5482,5483,5484,5485,5486,5487,5488,5489,5490,5491,
|
||||
# 5492,5493,5494,5495,5496,5497,5498,5499,5500,5501,
|
||||
# 5502,5503,5504,5505,5506,5507,5508,5509,5510,5511
|
||||
#]
|
||||
|
||||
#ids = [
|
||||
# 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098,
|
||||
# 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108
|
||||
# 5482,5483,5484,5485,5486,5487,5488,5489,5490,5491,
|
||||
# 5492,5493,5494,5495,5496,5497,5498,5499,5500,5501,
|
||||
# 5502,5503,5504,5505,5506,5507,5508,5509,5510,5511,
|
||||
# 5512,5513,5514,5515,5516,5517,5518,5519,5520,5521
|
||||
#]
|
||||
|
||||
|
||||
|
||||
#ids = [
|
||||
# 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098,
|
||||
# 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108,
|
||||
# 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118,
|
||||
# 8119, 8120, 8121, 8122, 8123, 8124, 8125, 8126, 8127, 8128
|
||||
# 5435,5436,5437,5438,5439,
|
||||
# 5440,5441,5442,5443,5444
|
||||
# 5445,5446,5447,5448,5449,
|
||||
# 5450,5451,5452,5453,5454,
|
||||
# 5455,5456,5457,5458,5459,
|
||||
# 5460,5461,5462,5463,5464,
|
||||
# 5465,5466,5467,5468,5469
|
||||
#]
|
||||
|
||||
#ids = [
|
||||
# 5435,5436,5437,5438,5439,
|
||||
# 5440,5441,5442,5443,5444,
|
||||
# 5445,5446,5447,5448,5449,
|
||||
# 5450,5451,5452,5453,5454,
|
||||
# 5455,5456,5457,5458,5459,
|
||||
# 5460,5461,5462,5463,5464,
|
||||
# 5465,5466,5467,5468,5469
|
||||
#]
|
||||
|
||||
[sounds]
|
||||
#sound = 'sound.mp3'
|
||||
#sound = 'Donald Trump Sings I Will Survive (64 kbps).mp3'
|
||||
#sounds_total_number = 20
|
||||
tracks = ['1.mp3','2.mp3','3.mp3','4.mp3','5.mp3','6.mp3','7.mp3','8.mp3','9.mp3','10.mp3','11.mp3','12.mp3','13.mp3','14.mp3','15.mp3','16.mp3','17.mp3','18.mp3','19.mp3']
|
||||
#sound = 'Donald Trump Sings Without Me by Eminem.mp3'
|
||||
sound = 'poke.mp3'
|
||||
sounds_total_number = 20
|
||||
|
@ -1,16 +1,16 @@
|
||||
[mumble]
|
||||
port = '5668'
|
||||
host = 'dev.linx.safemobile.com'
|
||||
host = 'presgold.linx.safemobile.com'
|
||||
|
||||
[hub]
|
||||
address = 'https://hub.dev.linx.safemobile.com/'
|
||||
address = 'https://hub.presgold.linx.safemobile.com/'
|
||||
|
||||
[elogs]
|
||||
name = 'dev'
|
||||
name = 'stage'
|
||||
|
||||
[api]
|
||||
port = ''
|
||||
host = 'dev.linx.safemobile.com/api'
|
||||
host = 'presgold.linx.safemobile.com/api/secure'
|
||||
use_secure = true
|
||||
accept_untrusted_certs = true
|
||||
|
||||
@ -18,21 +18,135 @@ accept_untrusted_certs = true
|
||||
max_fails = 3
|
||||
send_voice = true
|
||||
send_gps = true
|
||||
send_group_monitoring_before_each_call = false
|
||||
gps_report_interval = 10000 # The interval in which the GPS is sent
|
||||
gps_lat_start_point = 46.217802
|
||||
gps_lng_start_point = 24.776126
|
||||
delay_between_clients = 300
|
||||
testing_duration = 600 # seconds
|
||||
|
||||
[assets]
|
||||
ids = [ 2776 ]
|
||||
#VOICE and GPS Stage
|
||||
# ids = [
|
||||
# 65,1125
|
||||
# ]
|
||||
|
||||
ids = [
|
||||
asset_id_1, asset_id_2, asset_id_3
|
||||
]
|
||||
# VOICE and GPS Presgold
|
||||
# ids = [
|
||||
# 2164
|
||||
# 2164,2165,2166,2167,2168,2169,2170,2171,2172,2173
|
||||
# 2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,
|
||||
# 2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,
|
||||
# 2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,
|
||||
# 2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,
|
||||
# 2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,
|
||||
# 2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,
|
||||
# 2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,
|
||||
# 2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,
|
||||
# 2254,2255,2256,2257,2258,2259,2260,2261,2262,2263
|
||||
# ]
|
||||
|
||||
#VOICE and GPS Prestage
|
||||
# ids = [1947]
|
||||
# ids = [1947,1957]
|
||||
# ids = [1947,1957,1967]
|
||||
# 10 units
|
||||
# ids = [1947,1957,1967,1977,1987,1997,2007,2017,2027,2037] # colinde 0-10
|
||||
# 20 units
|
||||
# ids = [1947,1957,1967,1977,1987,1997,2007,2017,2027,2037,2047,2057,2067,2077,2087,2097,2107,2117,2127,2137]
|
||||
# 30 units
|
||||
# ids = [1947,1957,1967,1977,1987,1997,2007,2017,2027,2037,2047,2057,2067,2077,2087,2097,2107,2117,2127,2137,2147,2157,2167,2177,2187,2197,2207,2217,2227,2237]
|
||||
# 50 units
|
||||
# ids = [1947,1957,1967,1977,1987,1997,2007,2017,2027,2037,2047,2057,2067,2077,2087,2097,2107,2117,2127,2137,2147,2157,2167,2177,2187,2197,2207,2217,2227,2237,2247,2257,2267,2277,2287,2297,2307,2317,2327,2337,2347,2357,2367,2377,2387,2397,2407,2417,2427,2437]
|
||||
# 70 units
|
||||
# ids = [1947,1957,1967,1977,1987,1997,2007,2017,2027,2037,2047,2057,2067,2077,2087,2097,2107,2117,2127,2137,2147,2157,2167,2177,2187,2197,2207,2217,2227,2237,2247,2257,2267,2277,2287,2297,2307,2317,2327,2337,2347,2357,2367,2377,2387,2397,2407,2417,2427,2437,2447,2457,2467,2477,2487,2497,2507,2517,2527,2537,2547,2557,2567,2577,2587,2597,2597,2607,2617,2627,2637]
|
||||
|
||||
#GPS Prestage
|
||||
# 10 units
|
||||
# ids = [3842,3843,3844,3845,3846,3847,3848,3849,3850,3851]
|
||||
# 50 units
|
||||
# ids = [3842,3843,3844,3845,3846,3847,3848,3849,3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862,3863,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877,3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892]
|
||||
# 100 units
|
||||
# ids = [3842,3843,3844,3845,3846,3847,3848,3849,3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862,3863,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877,3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893,3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905,3906,3907,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942]
|
||||
# 300 units
|
||||
# ids = [3842,3843,3844,3845,3846,3847,3848,3849,3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862,3863,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877,3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893,3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905,3906,3907,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942,3893,3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905,3906,3907,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,3950,3951,3952,3953,3954,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,3965,3966,3967,3968,3969,3970,3971,3972,3973,3974,3975,3976,3977,3978,3979,3980,3981,3982,3983,3984,3985,3986,3987,3988,3989,3990,3991,3992,3993,3994,3995,3996,3997,3998,3999,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,4050,4051,4052,4053,4054,4055,4056,4057,4058,4059,4060,4061,4062,4063,4064,4065,4066,4067,4068,4069,4070,4071,4072,4073,4074,4075,4076,4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096,4097,4098,4099,4100,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4131,4132,4133,4134,4135,4136,4137,4138,4139,4140,4141]
|
||||
|
||||
|
||||
# audio-test-100 1947 colinde
|
||||
# audio-test-110 1957 colinde2
|
||||
# audio-test-120 1967 colinde3
|
||||
# audio-test-130 1977 colinde4
|
||||
# audio-test-140 1987 colinde5
|
||||
# audio-test-150 1997 colinde6
|
||||
# audio-test-160 2007 colinde7
|
||||
# audio-test-170 2017 colinde8
|
||||
# audio-test-180 2027 colinde9
|
||||
# audio-test-190 2037 colinde10
|
||||
|
||||
# audio-test-200 2047 colinde11
|
||||
# audio-test-210 2057 colinde12
|
||||
# audio-test-220 2067 colinde13
|
||||
# audio-test-230 2077 colinde14
|
||||
# audio-test-240 2087 colinde15
|
||||
# audio-test-250 2097 colinde16
|
||||
# audio-test-260 2107 colinde17
|
||||
# audio-test-270 2117 colinde18
|
||||
# audio-test-280 2127 colinde19
|
||||
# audio-test-290 2137 colinde20
|
||||
|
||||
# audio-test-300 2147 colinde21
|
||||
# audio-test-310 2157 colinde22
|
||||
# audio-test-320 2167 colinde23
|
||||
# audio-test-330 2177 colinde24
|
||||
# audio-test-340 2187 colinde25
|
||||
# audio-test-350 2197 colinde26
|
||||
# audio-test-360 2207 colinde27
|
||||
# audio-test-370 2217 colinde28
|
||||
# audio-test-380 2227 colinde29
|
||||
# audio-test-390 2237 colinde30
|
||||
|
||||
# audio-test-400 2247 colinde31
|
||||
# audio-test-410 2257 colinde32
|
||||
# audio-test-420 2267 colinde33
|
||||
# audio-test-430 2277 colinde34
|
||||
# audio-test-440 2287 colinde35
|
||||
# audio-test-450 2297 colinde36
|
||||
# audio-test-460 2307 colinde37
|
||||
# audio-test-470 2317 colinde38
|
||||
# audio-test-480 2327 colinde39
|
||||
# audio-test-490 2337 colinde40
|
||||
|
||||
# audio-test-500 2347 colinde41
|
||||
# audio-test-510 2357 colinde42
|
||||
# audio-test-520 2367 colinde43
|
||||
# audio-test-530 2377 colinde44
|
||||
# audio-test-540 2387 colinde45
|
||||
# audio-test-550 2397 colinde46
|
||||
# audio-test-360 2407 colinde47
|
||||
# audio-test-570 2417 colinde48
|
||||
# audio-test-580 2427 colinde49
|
||||
# audio-test-590 2437 colinde50
|
||||
|
||||
# audio-test-600 2447 colinde51
|
||||
# audio-test-610 2457 colinde52
|
||||
# audio-test-620 2467 colinde53
|
||||
# audio-test-630 2477 colinde54
|
||||
# audio-test-640 2487 colinde55
|
||||
# audio-test-650 2497 colinde56
|
||||
# audio-test-660 2507 colinde57
|
||||
# audio-test-670 2517 colinde58
|
||||
# audio-test-680 2527 colinde59
|
||||
# audio-test-690 2537 colinde60
|
||||
|
||||
# audio-test-700 2547 colinde61
|
||||
# audio-test-710 2557 colinde62
|
||||
# audio-test-720 2567 colinde63
|
||||
# audio-test-730 2577 colinde64
|
||||
# audio-test-740 2587 colinde65
|
||||
# audio-test-750 2597 colinde66
|
||||
# audio-test-760 2607 colinde67
|
||||
# audio-test-770 2617 colinde68
|
||||
# audio-test-780 2627 colinde69
|
||||
# audio-test-790 2637 colinde70
|
||||
|
||||
[sounds]
|
||||
#sound = 'sound.mp3'
|
||||
#sound = 'Donald Trump Sings I Will Survive (64 kbps).mp3'
|
||||
#sounds_total_number = 20
|
||||
tracks = ['1.mp3','2.mp3','3.mp3','4.mp3','5.mp3','6.mp3','7.mp3','8.mp3','9.mp3','10.mp3','11.mp3','12.mp3','13.mp3','14.mp3','15.mp3','16.mp3','17.mp3','18.mp3','19.mp3']
|
||||
sound = 'sound.mp3'
|
||||
sounds_total_number = 20
|
||||
|
14
install.sh
14
install.sh
@ -5,10 +5,18 @@ apt-get -qq update
|
||||
apt-get install -y build-essential
|
||||
apt-get install -y curl
|
||||
apt-get install -y python-minimal
|
||||
curl -sL https://deb.nodesource.com/setup_8.x | bash
|
||||
apt-get install -y nodejs
|
||||
|
||||
# install node 8
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
|
||||
nvm install v8.17.0
|
||||
|
||||
# add node 8 for all users
|
||||
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node"
|
||||
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm"
|
||||
|
||||
sudo apt install -y alsa-utils
|
||||
sudo apt-get install -y libasound2-dev
|
||||
sudo npm i -g node-gyp
|
||||
|
||||
mkdir simulator
|
||||
# mkdir simulator
|
||||
# scp -P 2222 ./ vagrant@127.0.0.1:.
|
1752
package-lock.json
generated
1752
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
BIN
sounds/Donald Trump Sings I Will Survive (320 kbps).mp3
Normal file
BIN
sounds/Donald Trump Sings I Will Survive (320 kbps).mp3
Normal file
Binary file not shown.
BIN
sounds/Donald Trump Sings I Will Survive (64 kbps).mp3
Normal file
BIN
sounds/Donald Trump Sings I Will Survive (64 kbps).mp3
Normal file
Binary file not shown.
BIN
sounds/Donald Trump Sings Without Me by Eminem.mp3
Normal file
BIN
sounds/Donald Trump Sings Without Me by Eminem.mp3
Normal file
Binary file not shown.
BIN
sounds/poke.mp3
Normal file
BIN
sounds/poke.mp3
Normal file
Binary file not shown.
BIN
sounds/sound.mp3
Normal file
BIN
sounds/sound.mp3
Normal file
Binary file not shown.
BIN
sounds/sound.mp3_counting
Normal file
BIN
sounds/sound.mp3_counting
Normal file
Binary file not shown.
BIN
sounds/soundbad.mp3
Normal file
BIN
sounds/soundbad.mp3
Normal file
Binary file not shown.
16
src/asset.js
16
src/asset.js
@ -44,7 +44,6 @@ class Asset {
|
||||
utils.writeLog(`Asset ${this.id} was successfully initialized`)
|
||||
|
||||
if (err) {
|
||||
console.log('err', err)
|
||||
utils.writeLog(`Asset ${this.id} was not successfully initialized`, err);
|
||||
return;
|
||||
}
|
||||
@ -72,6 +71,7 @@ class Asset {
|
||||
(error, response, body) => {
|
||||
if (!error && (response.statusCode === 200 || response.statusCode === 201)) {
|
||||
let bodyObj = JSON.parse(body);
|
||||
|
||||
// Here are the asset fields.
|
||||
this.assetProps = bodyObj.data;
|
||||
// console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!!!', this.assetProps)
|
||||
@ -173,6 +173,7 @@ class Asset {
|
||||
});
|
||||
|
||||
hub.once('connect', () => {
|
||||
console.log('11111111111111111111')
|
||||
return callback();
|
||||
});
|
||||
hub.on('connect', () => {
|
||||
@ -276,9 +277,9 @@ class Asset {
|
||||
}
|
||||
));
|
||||
utils.writeLog(`Asset ${this.id} mmonitoring group ${this.groupId}`)
|
||||
if (callback) return callback();
|
||||
return callback();
|
||||
} else {
|
||||
if (callback) return callback('Cannot send group-monitoring: Hub not connected');
|
||||
return callback('Cannot send group-monitoring: Hub not connected');
|
||||
}
|
||||
} else {
|
||||
console.log('_moveToChannel--------------------')
|
||||
@ -373,11 +374,8 @@ class Asset {
|
||||
}
|
||||
|
||||
_makePtt(callback) {
|
||||
// Sending group monitoring before we make PTT()
|
||||
// Is used for the HUB load test(_moveToChannel is sent anyway after connecting to murmur-register)
|
||||
if (this.configs.settings.send_group_monitoring_before_each_call == 'true') {
|
||||
this._moveToChannel();
|
||||
}
|
||||
|
||||
// Send ptt-press, transmit all the sound then send ptt-release.
|
||||
|
||||
// Check hub.
|
||||
let hub = this.hub;
|
||||
@ -502,7 +500,7 @@ class Asset {
|
||||
let lat = this.configs.settings.gps_lat_start_point;
|
||||
let lng = this.configs.settings.gps_lng_start_point;
|
||||
|
||||
setTimeout(() => {
|
||||
setInterval(() => {
|
||||
var new_lat = this._randomCoordinates(lat);
|
||||
var new_lng = this._randomCoordinates(lng);
|
||||
|
||||
|
@ -85,7 +85,7 @@ class Simulator {
|
||||
return callback(error);
|
||||
}
|
||||
else {
|
||||
utils.writeLog(`Unregister assets: ${this.assetIds}`);
|
||||
utils.writeLog(`Unregister assets: ${this.assetIds}`)
|
||||
return callback();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user