-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdevice.py
More file actions
36 lines (30 loc) · 1.29 KB
/
Copy pathdevice.py
File metadata and controls
36 lines (30 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# device.py
"""
Defines the LoRaDevice class with transmission and sensor parameters.
"""
class Sensor:
def __init__(self, name, data_rate_bps):
self.name = name
self.data_rate_bps = data_rate_bps # For future use (e.g., flow sensor: 9600bps)
def __repr__(self):
return f"{self.name} ({self.data_rate_bps} bps)"
class LoRaDevice:
def __init__(self, tx_power_dbm, spreading_factor, bandwidth_khz, frequency_mhz, receiver_sensitivity_dbm):
self.tx_power_dbm = tx_power_dbm
self.spreading_factor = spreading_factor
self.bandwidth_khz = bandwidth_khz
self.frequency_mhz = frequency_mhz
self.receiver_sensitivity_dbm = receiver_sensitivity_dbm
self.sensors = []
def add_sensor(self, sensor: Sensor):
self.sensors.append(sensor)
def print_config(self):
print("LoRa Device Configuration:")
print(f" Tx Power: {self.tx_power_dbm} dBm")
print(f" Spreading Factor: SF{self.spreading_factor}")
print(f" Bandwidth: {self.bandwidth_khz} kHz")
print(f" Frequency: {self.frequency_mhz} MHz")
print(f" Receiver Sensitivity: {self.receiver_sensitivity_dbm} dBm")
print(" Connected Sensors:")
for sensor in self.sensors:
print(f" - {sensor}")