98 lines
2.1 KiB
Python
98 lines
2.1 KiB
Python
from abc import ABC
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from platypush.message.event import Event
|
|
|
|
|
|
class GPSEvent(Event, ABC):
|
|
"""
|
|
Generic class for GPS events.
|
|
"""
|
|
|
|
|
|
class GPSDeviceEvent(GPSEvent):
|
|
"""
|
|
Event triggered when a new GPS device is connected or reconfigured.
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
path: str,
|
|
*args,
|
|
activated: Optional[datetime] = None,
|
|
native: bool = False,
|
|
baudrate: Optional[int] = None,
|
|
parity: Optional[str] = None,
|
|
stopbits: Optional[int] = None,
|
|
cycle: Optional[float] = None,
|
|
driver: Optional[str] = None,
|
|
subtype: Optional[str] = None,
|
|
**kwargs
|
|
):
|
|
"""
|
|
:param path: Device path.
|
|
:param activated: Device activation timestamp.
|
|
:param native: Device native status.
|
|
:param baudrate: Device baudrate.
|
|
:param parity: Device parity.
|
|
:param stopbits: Device stopbits.
|
|
:param cycle: Device cycle.
|
|
:param driver: Device driver.
|
|
:param subtype: Device subtype.
|
|
"""
|
|
super().__init__(
|
|
*args,
|
|
path=path,
|
|
activated=activated,
|
|
native=native,
|
|
baudrate=baudrate,
|
|
parity=parity,
|
|
stopbits=stopbits,
|
|
cycle=cycle,
|
|
driver=driver,
|
|
subtype=subtype,
|
|
**kwargs
|
|
)
|
|
|
|
|
|
class GPSLocationUpdateEvent(GPSEvent):
|
|
"""
|
|
Event triggered upon GPS status update.
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
*args,
|
|
device=None,
|
|
latitude=None,
|
|
longitude=None,
|
|
altitude=None,
|
|
mode=None,
|
|
**kwargs
|
|
):
|
|
super().__init__(
|
|
*args,
|
|
device=device,
|
|
latitude=latitude,
|
|
longitude=longitude,
|
|
altitude=altitude,
|
|
mode=mode,
|
|
**kwargs
|
|
)
|
|
|
|
|
|
class GPSEnabledEvent(GPSEvent):
|
|
"""
|
|
Event triggered when the GPS polling is enabled.
|
|
"""
|
|
|
|
|
|
class GPSDisabledEvent(GPSEvent):
|
|
"""
|
|
Event triggered when the GPS polling is disabled.
|
|
"""
|
|
|
|
|
|
# vim:sw=4:ts=4:et:
|