예제 #1
0
        public static OffsetResponse setOffsetResponse(FSPOffset offset)
        {
            OffsetResponse resp = new OffsetResponse();

            resp.Address   = offset.Address;
            resp.DataGroup = offset.Datagroup;
            resp.DataType  = offset.DataType;
            resp.Value     = offset.Value;
            //resp.Version = Library.Properties.Version.getVersion();
            return(resp);
        }
        public static void AddOffset(FSPOffset offset)
        {
            if (_offsets == null)
            {
                _offsets = new List <FSPOffset>();
            }
            var checkOffset = from o in _offsets
                              where (o.Address == offset.Address) && (o.Datagroup == offset.Datagroup)
                              select o;

            if (checkOffset == null)
            {
                _offsets.Add(offset);
                return;
            }
            if (checkOffset.Count() == 0)
            {
                _offsets.Add(offset);
            }
        }
        public HttpResponseMessage OpenPost([FromBody] FSUIPCConnect value)
        {
            Logger log = LogManager.GetCurrentClassLogger();

            try
            {
                log.Info("Received OpenFSUIPC Connection call");
                ConnectResponse resp = new ConnectResponse();

                if (FSPFSUIPCConnection.IsOpen)
                {
                    log.Info("Connection already is open");
                    resp.Message = "Connection Opened";
                }
                else
                {
                    log.Info("Opening connection..");

                    FSPFSUIPCConnection.Open();
                    resp.Message = "Connection Opened";
                }

                FSPFSUIPCConnection.AddOffset(15616, Datatype.String, "Connect");
                FSPOffset      _offset = FSPFSUIPCConnection.Process("Connect").First();
                OffsetResponse _resp   = OffsetHelpers.setOffsetResponse(_offset);

                resp.Version = FSPServerV2.Library.Properties.Version.getVersion();

                resp.Simulator = FSPFSUIPCConnection.FlightSimVersionConnected.ToString();
                resp.Aircraft  = _resp.Value;

                return(Request.CreateResponse(HttpStatusCode.OK, resp));
            }
            catch (Exception ee)
            {
                Console.WriteLine(ee.Message);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Connection Error", ee));
                //return Request.CreateResponse(HttpStatusCode.OK, "error: " + ee.Message);
            }
        }
예제 #4
0
 public HttpResponseMessage ReadOffset(int offset, string datatype, string datagroup)
 {
     if (FSPFSUIPCConnection.IsOpen)
     {
         try
         {
             List <FSPOffset> offsets = FSPFSUIPCConnection.Process(datagroup);
             FSPOffset        _offset = (from o in offsets
                                         where o.Address == offset
                                         select o).First();
             OffsetResponse resp = OffsetHelpers.setOffsetResponse(_offset);
             return(Request.CreateResponse(HttpStatusCode.OK, resp));
         }
         catch (Exception ex)
         {
             return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Exception Getting Offset", ex));
         }
     }
     else
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "FSUIPC Connection is closed!"));
     }
 }
        public static void AddOffset(int Address, Datatype DataType, String group)
        {
            FSPOffset offset = OffsetHelpers.setOffset(Address, DataType.ToString(), group);

            AddOffset(offset);
        }