STIoT packet generator which simulates LoRa@FIIT wireless access point and LoRa@FIIT end nodes.
- Generate a position of each node randomly from uniform distribution
- Calculate a PATH LOSS depending on the variable distance from AP
- Move the nodes using a normal speed of a human
- Pseudo-random RSSI, SNR generation
- Sending frequency data in STIoT messages
- Support for Command Line Interface (CLI)
- Duty cycle contraints and refresh
- Non-blocking socket communication to improve scalability
- Thread-safe message queuing
- Emergency message support
- Priority queue for emergency messages
- Uplink collision simulation
- Downlink collision simulation
- End node duty cycle constraints and refresh
- Processing network data from network server to adapt communication parameters
- Calculate time-on-air (TOA) for each message
- Data retransmission in case of collision
- Support for Upper Confidence Bound parameter selection
- Support for Thompson Sampling parameter selection
- Update parameters based on partial results from Network Server (MABP-case)
- Random initial movement direction
You are free to change these variables in generator.py:
file_path="data/group1.txt"
num_of_nodes = 100
Then you should run
generator.py
Recommended approach. Could be displayed by running main.py -h or main.py --help commands
main.py -i <access-point-id>
-i <dev_id>, --id=<dev_id> - Specify LoRa AP hardware id
-r, --register - Include end nodes registration process
-s, --shuffle - Shuffle list of end nodes
-f <file_path>, --file=<file_path> - Specify LoRa node id file
-b, --bandit - Activating bandit nodes support
-t, --test - Using test scenario for developing purposes
Just run the file. It generates 10x[number of files] new access points. This usage is buggy and can cause memmory leaks. Use at your own risk.
run.py