void fsdSession_ServerIdentificationReceived(object sender, DataReceivedEventArgs <PDUServerIdentification> e) { var msg = (UserClickedLoginMessage)e.UserData; uint serialNum, serialNumLength, flags; StringBuilder volumename = new StringBuilder(256); StringBuilder fstype = new StringBuilder(256); bool ok = GetVolumeInformation("C:\\", volumename, (uint)volumename.Capacity - 1, out serialNum, out serialNumLength, out flags, fstype, (uint)fstype.Capacity - 1); fsdSession.SendPDU(new PDUClientIdentification(msg.Callsign, fsdSession.ClientProperties.ClientID, fsdSession.ClientProperties.Name, fsdSession.ClientProperties.Version.Major, fsdSession.ClientProperties.Version.Minor, msg.Cid, ((int)serialNum).ToString(), null)); fsdSession.SendPDU(new PDUAddPilot(msg.Callsign, msg.Cid, msg.Password, NetworkRating.OBS, ProtocolRevision.VatsimAuth, SimulatorType.MSFS95, msg.Realname)); context.FSDIsConnected = true; context.Callsign = msg.Callsign; context.Realname = msg.Realname; context.CID = msg.Cid; broker.Publish(new FSDConnectedMessage()); broker.Subscribe(this, typeof(PositionReportMessage)); broker.Subscribe(this, typeof(TextMessageSend)); Logger.Trace("Connect done"); }
private void FSD_ServerIdentificationReceived(object sender, DataReceivedEventArgs <PDUServerIdentification> e) { FSD.SendPDU(new PDUClientIdentification(OurCallsign, FSD.GetClientKey(), "xPilot", mVersion.Major, mVersion.Minor, mConfig.VatsimId.Trim(), mSystemUID, null)); if (mConnectInfo.ObserverMode) { FSD.SendPDU(new PDUAddATC(mConnectInfo.Callsign, mConfig.Name, mConfig.VatsimId.Trim(), mConfig.VatsimPassword.Trim(), NetworkRating.OBS, ProtocolRevision.VatsimAuth)); } else { FSD.SendPDU(new PDUAddPilot(OurCallsign, mConfig.VatsimId.Trim(), mConfig.VatsimPassword.Trim(), NetworkRating.OBS, ProtocolRevision.VatsimAuth, SimulatorType.XPlane, mConfig.NameWithAirport)); } RequestPublicIP(); SendPositionUpdate(); mPositionUpdateTimer.Interval = mConnectInfo.ObserverMode ? 15000 : 5000; mPositionUpdateTimer.Start(); }