Skip to content

This is the code for the “IoT Engineering Comprehensive Course Design,” aimed at implementing the LoRa concurrent transmission process.

License

Notifications You must be signed in to change notification settings

Cresc3ntRose/LoRaSim-for-Concurrent-Transmission

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LoRa Concurrent Transmission Simulation

English | 中文

Project Overview

This project aims to simulate concurrent LoRa packet transmissions to analyze interference patterns and network performance. By simulating simultaneous transmissions from multiple LoRa nodes, it evaluates the effectiveness of channel scheduling and allocation strategies, and generates detailed transmission statistics and performance metrics.

Features

  • Concurrent transmission simulation
  • Channel scheduling and allocation
  • Queue management
  • Timeout handling and retransmission mechanism
  • Multithreading

Installation

git clone git@github.com:Cresc3ntRose/LoRaSim-for-Concurrent-Transmission.git
cd lorasim_concurrent_transmission
mkdir logs data
cd logs && touch simulation.log
cd ../data && touch packet.json && cd ..
cargo build --release

Usage

  1. Generate Random Packets

    cargo run -- --random

    This command generates random LoRa packets, saves them locally, and performs the simulation using these packets.

  2. Run Simulation with Existing Packets

    cargo run

    This command reads existing packets from the data directory and performs the simulation.

Project Structure

src/
├── bin/
│   └── siomulation.rs       # Entry point of the program
├── models/                  # Model definitions
│   ├── mod.rs               # Model module declaration
│   ├── packet.rs            # LoRa packet definition
│   └── gateway.rs           # Gateway definition
└── data_access/             # Data access layer
   ├── mod.rs               # Data access module declaration  
   ├── generate_packets.rs  # Generate random packets
   ├── get_packets.rs       # Read packets
   └── setup_logger.rs      # Logger configuration

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

About

This is the code for the “IoT Engineering Comprehensive Course Design,” aimed at implementing the LoRa concurrent transmission process.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages