kopia lustrzana https://github.com/projecthorus/pysondehub
add amateur
rodzic
f1572268a5
commit
bb75fca58e
|
@ -1,6 +1,6 @@
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "sondehub"
|
name = "sondehub"
|
||||||
version = "0.2.0"
|
version = "0.2.1"
|
||||||
description = "SDK to access SondeHub open data"
|
description = "SDK to access SondeHub open data"
|
||||||
authors = ["Michaela <git@michaela.lgbt>"]
|
authors = ["Michaela <git@michaela.lgbt>"]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
|
@ -21,7 +21,8 @@ class Stream:
|
||||||
on_message=None,
|
on_message=None,
|
||||||
on_log=None,
|
on_log=None,
|
||||||
on_disconnect=None, asJson=False,
|
on_disconnect=None, asJson=False,
|
||||||
auto_start_loop=True):
|
auto_start_loop=True,
|
||||||
|
prefix="sondes"):
|
||||||
self.mqttc = mqtt.Client(transport="websockets")
|
self.mqttc = mqtt.Client(transport="websockets")
|
||||||
self._sondes = sondes
|
self._sondes = sondes
|
||||||
self.asJson = asJson
|
self.asJson = asJson
|
||||||
|
@ -30,6 +31,7 @@ class Stream:
|
||||||
self.on_disconnect = on_disconnect
|
self.on_disconnect = on_disconnect
|
||||||
self.on_log = on_log
|
self.on_log = on_log
|
||||||
self.auto_start_loop = auto_start_loop
|
self.auto_start_loop = auto_start_loop
|
||||||
|
self.prefix = prefix
|
||||||
self.ws_connect()
|
self.ws_connect()
|
||||||
|
|
||||||
self.loop_start = self.mqttc.loop_start
|
self.loop_start = self.mqttc.loop_start
|
||||||
|
@ -40,13 +42,13 @@ class Stream:
|
||||||
def add_sonde(self, sonde):
|
def add_sonde(self, sonde):
|
||||||
if sonde not in self._sondes:
|
if sonde not in self._sondes:
|
||||||
self._sondes.append(sonde)
|
self._sondes.append(sonde)
|
||||||
(result, mid) = self.mqttc.subscribe(f"sondes/{sonde}", 0)
|
(result, mid) = self.mqttc.subscribe(f"{self.prefix}/{sonde}", 0)
|
||||||
if result != mqtt.MQTT_ERR_SUCCESS:
|
if result != mqtt.MQTT_ERR_SUCCESS:
|
||||||
self.ws_connect()
|
self.ws_connect()
|
||||||
|
|
||||||
def remove_sonde(self, sonde):
|
def remove_sonde(self, sonde):
|
||||||
self._sondes.remove(sonde)
|
self._sondes.remove(sonde)
|
||||||
(result, mid) = self.mqttc.unsubscribe(f"sondes/{sonde}", 0)
|
(result, mid) = self.mqttc.unsubscribe(f"{self.prefix}/{sonde}", 0)
|
||||||
if result != mqtt.MQTT_ERR_SUCCESS:
|
if result != mqtt.MQTT_ERR_SUCCESS:
|
||||||
self.ws_connect()
|
self.ws_connect()
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,14 @@ def main():
|
||||||
type=str,
|
type=str,
|
||||||
action="append",
|
action="append",
|
||||||
)
|
)
|
||||||
|
group.add_argument(
|
||||||
|
"--amateur",
|
||||||
|
dest="prefix",
|
||||||
|
const="amateur",
|
||||||
|
default="sondes",
|
||||||
|
help="Connect to amateur endpoint",
|
||||||
|
action="store_const",
|
||||||
|
)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
if (args.download):
|
if (args.download):
|
||||||
serials = [item for sublist in args.download for item in sublist]
|
serials = [item for sublist in args.download for item in sublist]
|
||||||
|
@ -47,7 +55,7 @@ def main():
|
||||||
): # we need to drop the default value if the user specifies specific sondes
|
): # we need to drop the default value if the user specifies specific sondes
|
||||||
args.sondes = args.sondes[1:]
|
args.sondes = args.sondes[1:]
|
||||||
sondes = [item for sublist in args.sondes for item in sublist]
|
sondes = [item for sublist in args.sondes for item in sublist]
|
||||||
test = sondehub.Stream(on_message=on_message, sondes=sondes, auto_start_loop=False)
|
test = sondehub.Stream(on_message=on_message, sondes=sondes, auto_start_loop=False, prefix=args.prefix)
|
||||||
test.loop_forever()
|
test.loop_forever()
|
||||||
|
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue