private void HandleLocationUpdateEvent(IPSEventMessage message) { if (!message.HasLocationMsg) { return; } LocationMessage msg = message.LocationMsg; var args = new LocationEventArgs(msg.DeviceId, msg.MapId, msg.X, msg.Y); if (OnLocationChanged != null) { OnLocationChanged(this, args); } }
private void HandleCameraStateChangedEvent(IPSEventMessage message) { if (!message.HasCameraStateMsg) { return; } CameraStateMessage msg = message.CameraStateMsg; var args = new CameraStateArgs(msg.DeviceId, msg.IsCameraOn, msg.CameraType == CameraStateMessage.Types.CameraType.Front ? CameraStateArgs.CameraType.FrontCamera : CameraStateArgs.CameraType.BackCamera); args.FaceAngle = msg.FaceAngle; args.TiltAngle = msg.TiltAngle; if (OnCameraStateChanged != null) { OnCameraStateChanged(this, args); } }
protected override void OnEventReceived(byte[] msg) { string tag = string.Empty; int index = GetMessageTag(msg, ref tag); if (index == -1) { return; } if (tag != LocationTag) { return; } byte[] body = new byte[msg.Length - index - 1]; Array.Copy(msg, index + 1, body, 0, body.Length); var message = IPSEventMessage.CreateBuilder().MergeFrom(body).Build(); if (message == null) { return; } switch (message.MessageType) { case IPSEventMessage.Types.Type.CameraStateMsg: HandleCameraStateChangedEvent(message); break; case IPSEventMessage.Types.Type.LocationUpdateMsg: HandleLocationUpdateEvent(message); break; } }