AirControl  1.3.0
Open Source, Modular, and Extensible Flight Simulator For Deep Learning Research
OutputHandle.cs
1 using System.Collections;
2 using System.Collections.Generic;
3 using UnityEngine;
4 using Communicator;
5 using Newtonsoft.Json;
6 using AirControl;
7 using System.Linq;
8 using Commons;
9 
10 namespace Communicator
11 {
15  public class OutputHandle:MonoBehaviour
16  {
17  #region Builtin Methods
18  // private SQLiteConnection connection;
19  #endregion
20  public void ParseOutput(ref string outputmsg)
25  {
26  // To avoid null retun from Screencapture
27  // To not to send the screencapture if `IsCapture` is to `false`, to save bandwidth
28  ref var screencapture = ref StaticOutputSchema.ScreenCapture;
29  if (screencapture == null || StaticCameraSchema.IsCapture == false){
30  screencapture = new byte[0];
31 
32  }
33 
34  // to avoid null retun from Screencapture
35  var lidarPointCloud = StaticOutputSchema.LidarPointCloud;
36  if (lidarPointCloud == null){
37  lidarPointCloud = new float[0];
38  }
39 
40 
41  outputmsg = JsonConvert.SerializeObject(new OutputSchema{
42  BankAngle = StaticOutputSchema.BankAngle,
43  PitchAngle = StaticOutputSchema.PitchAngle,
44  AGL = StaticOutputSchema.AGL,
45  MSL = StaticOutputSchema.MSL,
46  CurrentRPM = StaticOutputSchema.CurrentRPM,
47  MaxRPM = StaticOutputSchema.MaxRPM,
48  MaxPower = StaticOutputSchema.MaxPower,
49  CurrentPower = StaticOutputSchema.CurrentPower,
50  CurrentSpeed = StaticOutputSchema.CurrentSpeed,
51  ScreenCapture = screencapture,
52  LidarPointCloud = lidarPointCloud,
53  Latitude = StaticOutputSchema.Latitude,
54  Longitude = StaticOutputSchema.Longitude,
55  IfCollision = StaticOutputSchema.IfCollision,
56  Reward = StaticOutputSchema.Reward,
57  Counter = StaticOutputSchema.Counter,
58  CollisionObject = StaticOutputSchema.CollisionObject,
59  IsFlying = StaticOutputSchema.IsFlying,
60  IsGrounded = StaticOutputSchema.IsGrounded,
61  IsTaxiing = StaticOutputSchema.IsTaxiing,
62  PosXAbs = StaticOutputSchema.PosXAbs,
63  PosYAbs = StaticOutputSchema.PosYAbs,
64  PosZAbs = StaticOutputSchema.PosZAbs,
65  PosXRel = StaticOutputSchema.PosXRel,
66  PosYRel = StaticOutputSchema.PosYRel,
67  PosZRel = StaticOutputSchema.PosZRel,
68  RotXAbs = StaticOutputSchema.RotXAbs,
69  RotYAbs = StaticOutputSchema.RotYAbs,
70  RotZAbs = StaticOutputSchema.RotZAbs,
71  RotXRel = StaticOutputSchema.RotXRel,
72  RotYRel = StaticOutputSchema.RotYRel,
73  RotZRel = StaticOutputSchema.RotZRel,
74  AngularXVelocity = StaticOutputSchema.AngularXVelocity,
75  AngularYVelocity = StaticOutputSchema.AngularYVelocity,
76  AngularZVelocity = StaticOutputSchema.AngularZVelocity,
77  LinearXVelocity = StaticOutputSchema.LinearXVelocity,
78  LinearYVelocity = StaticOutputSchema.LinearYVelocity,
79  LinearZVelocity = StaticOutputSchema.LinearZVelocity,
80  AngularXAcceleration = StaticOutputSchema.AngularXAcceleration,
81  AngularYAcceleration = StaticOutputSchema.AngularYAcceleration,
82  AngularZAcceleration = StaticOutputSchema.AngularZAcceleration,
83  LinearXAcceleration = StaticOutputSchema.LinearXAcceleration,
84  LinearYAcceleration = StaticOutputSchema.LinearYAcceleration,
85  LinearZAcceleration = StaticOutputSchema.LinearZAcceleration,
86 
88  StaticOutputSchema.Counter ++;
89  }
94  public string LogOutput()
95  {
96  string LogOutput = JsonConvert.SerializeObject(new Logger{
97  Log = StaticLogger.Log,
99  );
100  return LogOutput;
101  }
102  }
103 
104 }
Communicator.OutputSchema
Output control class for serialization deserialization
Definition: IOSchema.cs:136
Communicator.OutputHandle.ParseOutput
void ParseOutput(ref string outputmsg)
Prepare output object and return json string to be dispatched
Definition: OutputHandle.cs:24
Communicator.OutputHandle
Handle outbound request from the TCP socket
Definition: OutputHandle.cs:15
Communicator.PrimitiveToStringConverter
Converting boolena to string while serializing
Definition: IOInit.cs:72
Communicator.OutputHandle.LogOutput
string LogOutput()
Just Log output if the entire output is not required
Definition: OutputHandle.cs:94
AirControl
Definition: AirplaneSelector.cs:8
Communicator.Logger
Logger class for serialization deserialization
Definition: IOSchema.cs:194
Communicator
Definition: InputHandle.cs:10
Commons
Definition: AirplaneProperties.cs:14