public override void Execute(JSONNode args) { var uid = args["uid"].Value; var api = ApiManager.Instance; SensorBase sensor = null; if (SimulatorManager.InstanceAvailable) { sensor = SimulatorManager.Instance.Sensors.GetSensor(uid); } if (sensor != null) { var sensorType = sensor.GetType().GetCustomAttribute <SensorType>(); if (sensorType.Name == "Lidar") { var path = args["path"].Value; var result = (bool)sensor.GetType().GetMethod("Save").Invoke(sensor, new object[] { path }); api.SendResult(this, result); } else { api.SendError(this, $"Sensor '{uid}' is not a lidar sensor"); } } else { api.SendError(this, $"Sensor '{uid}' not found"); } }
static string GetSensorType(SensorBase sensor) { var type = sensor.GetType().GetCustomAttributes(typeof(SensorType), false)[0] as SensorType; UnityEngine.Debug.Log($"{type.Name}"); return(type.Name); }
public override void Execute(JSONNode args) { var uid = args["uid"].Value; var api = ApiManager.Instance; SensorBase sensor = null; if (SimulatorManager.InstanceAvailable) { sensor = SimulatorManager.Instance.Sensors.GetSensor(uid); } if (sensor != null) { var isStart = args["is_start"].AsBool; var filename = args["filename"].Value; var sensorType = sensor.GetType().GetCustomAttribute <SensorType>(); if (sensorType.Name == "Video Recording") { bool result; if (isStart) { result = (bool)sensor.GetType().GetMethod("StartRecording").Invoke(sensor, new object[] { filename }); } else { result = (bool)sensor.GetType().GetMethod("StopRecording").Invoke(sensor, null); } api.SendResult(this, result); } else { api.SendError(this, $"Sensor '{uid}' is not a video recording sensor"); } } else { api.SendError(this, $"Sensor '{uid}' not found"); } }
public override void Execute(JSONNode args) { var uid = args["uid"].Value; var api = ApiManager.Instance; SensorBase sensor = null; if (SimulatorManager.InstanceAvailable) { sensor = SimulatorManager.Instance.Sensors.GetSensor(uid); } if (sensor != null) { var sensorType = sensor.GetType().GetCustomAttribute <SensorType>(); var path = args["path"].Value; var quality = args["quality"].AsInt; var compression = args["compression"].AsInt; if (sensorType.Name == "Color Camera") { bool result = (bool)sensor.GetType().GetMethod("Save").Invoke(sensor, new object[] { path, quality, compression }); api.SendResult(this, result); } else if (sensorType.Name == "Segmentation Camera") { bool result = (bool)sensor.GetType().GetMethod("Save").Invoke(sensor, new object[] { path, quality, compression }); api.SendResult(this, result); } else { api.SendError(this, $"Sensor '{uid}' is not a camera sensor"); } } else { api.SendError(this, $"Sensor '{uid}' not found"); } }
public override void Execute(JSONNode args) { var uid = args["uid"].Value; var api = ApiManager.Instance; SensorBase sensor = null; if (SimulatorManager.InstanceAvailable) { sensor = SimulatorManager.Instance.Sensors.GetSensor(uid); } if (sensor != null) { var sensorType = sensor.GetType().GetCustomAttribute <SensorType>(); if (sensorType.Name == "GPS Device") { var data = (GpsData)sensor.GetType().GetMethod("GetData").Invoke(sensor, null); var result = new JSONObject(); result.Add("latitude", data.Latitude); result.Add("longitude", data.Longitude); result.Add("northing", data.Northing); result.Add("easting", data.Easting); result.Add("altitude", data.Altitude); result.Add("orientation", data.Orientation); api.SendResult(this, result); } else { api.SendError(this, $"Sensor '{uid}' is not a GPS sensor"); } } else { api.SendError(this, $"Sensor '{uid}' not found"); } }
static string GetSensorType(SensorBase sensor) { var type = sensor.GetType().GetCustomAttributes(typeof(SensorType), false)[0] as SensorType; return(type.Name); }