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: