mirror of
				https://github.com/liberatedsystems/Sideband_CE.git
				synced 2024-09-03 04:13:27 +02:00 
			
		
		
		
	Improved example plugins
This commit is contained in:
		
							parent
							
								
									3967a85ab0
								
							
						
					
					
						commit
						2da2fc26e7
					
				| @ -1,3 +1,7 @@ | ||||
| # This is a bare-minimum command plugin | ||||
| # example that you can build upon to | ||||
| # implement your own command plugins. | ||||
| 
 | ||||
| import RNS | ||||
| 
 | ||||
| class BasicCommandPlugin(SidebandCommandPlugin): | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| # This plugin example fetches an XKCD comic | ||||
| # from an external URL and returns it as an | ||||
| # embedded image in an LXMF message. | ||||
| 
 | ||||
| import io | ||||
| import RNS | ||||
| import requests | ||||
|  | ||||
| @ -1,10 +1,14 @@ | ||||
| import RNS | ||||
| import time | ||||
| import threading | ||||
| # This plugin allows using GPSd as a location | ||||
| # telemetry provider on Linux systems. | ||||
| 
 | ||||
| # This plugin requires the "gpsdclient" pip | ||||
| # package to be installed on your system. | ||||
| # Install it with: pip install gpsdclient | ||||
| 
 | ||||
| import RNS | ||||
| import time | ||||
| import threading | ||||
| 
 | ||||
| from gpsdclient import GPSDClient | ||||
| 
 | ||||
| class GpsdLocationPlugin(SidebandTelemetryPlugin): | ||||
| @ -50,19 +54,28 @@ class GpsdLocationPlugin(SidebandTelemetryPlugin): | ||||
|                         RNS.log("Connected, streaming GPSd data", RNS.LOG_DEBUG) | ||||
| 
 | ||||
|                     self.client_connected = True | ||||
|                     self.last_update = time.time() | ||||
|                     self.latitude  = result.get("lat", None) | ||||
|                     self.longitude = result.get("lon", None) | ||||
|                     self.altitude  = result.get("altHAE", None) | ||||
|                     self.speed     = result.get("speed", None) | ||||
|                     self.bearing   = result.get("track", None) | ||||
| 
 | ||||
|                     epx = result.get("epx", None); epy = result.get("epy", None) | ||||
|                     epv = result.get("epv", None) | ||||
|                     if epx != None and epy != None and epv != None: | ||||
|                         self.accuracy = max(epx, epy, epv) | ||||
|                     else: | ||||
|                         self.accuracy = None | ||||
|                     gpsd_latitude  = result.get("lat", None) | ||||
|                     gpsd_longitude = result.get("lon", None) | ||||
|                     gpsd_altitude  = result.get("altHAE", None) | ||||
|                     gpsd_speed     = result.get("speed", None) | ||||
|                     gpsd_bearing   = result.get("track", None) | ||||
|                     gpsd_required  = [gpsd_latitude, gpsd_longitude, gpsd_altitude, gpsd_speed, gpsd_bearing] | ||||
| 
 | ||||
|                     if not None in gpsd_required: | ||||
|                         self.last_update = time.time() | ||||
|                         self.latitude  = gpsd_latitude | ||||
|                         self.longitude = gpsd_longitude | ||||
|                         self.altitude  = gpsd_altitude | ||||
|                         self.speed     = gpsd_speed | ||||
|                         self.bearing   = gpsd_bearing | ||||
| 
 | ||||
|                         epx = result.get("epx", None); epy = result.get("epy", None) | ||||
|                         epv = result.get("epv", None) | ||||
|                         if epx != None and epy != None and epv != None: | ||||
|                             self.accuracy = max(epx, epy, epv) | ||||
|                         else: | ||||
|                             self.accuracy = None | ||||
| 
 | ||||
|             except Exception as e: | ||||
|                 RNS.log("Could not connect to local GPSd, retrying later", RNS.LOG_ERROR) | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| # This is a bare-minimum service plugin | ||||
| # example that you can build upon to | ||||
| # implement your own service plugins. | ||||
| 
 | ||||
| import RNS | ||||
| import time | ||||
| import threading | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| # This is a bare-minimum telemetry plugin | ||||
| # example that you can build upon to | ||||
| # implement your own telemetry plugins. | ||||
| 
 | ||||
| import RNS | ||||
| 
 | ||||
| class BasicTelemetryPlugin(SidebandTelemetryPlugin): | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # This plugin lets you remotely query and view a | ||||
| # number of different image sources in Sideband. | ||||
| # number of different image sources in Sideband, | ||||
| # including remote or local webcams, video sources | ||||
| # or images stored in a filesystem. | ||||
| # | ||||
| # This plugin requires the "pillow" pip package. | ||||
| # | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user