platypush/platypush/message/event/gps.py

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: