Giter Club home page Giter Club logo

fcomclient's Introduction

FCOM client

The client that capture messages received over VATSIM / IVAO

Version 0.9.2

Requirements

  • Windows 7 or newer
  • .NET Framework 4.7.1 or newer
  • WinPcap

Download and installation

See the Releases page on GitHub for downloads.

To install:

  • Extract the FcomClient folder to any desired location
  • Run the included WinPcap installer (if not already installed)

To run:

  • Open FcomGui.exe (the one with the purple "F" icon)
  • Alternatively, open FcomClient.exe for the older "console" interface

For developers: GUI source code

FcomClient (this repo) currently only contains a command-line interface.

For now, the GUI is implemented via a standalone program. Its source code can be found here.

More info

Website: https://norrisng.ca/fcom

Discord server: https://discord.gg/F59CyKC

Dev blog: https://fcomforwarder.wordpress.com/

fcomclient's People

Contributors

norrisng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

fcomclient's Issues

Exception handling for missing files

Currently, the program will crash if required files are missing. This includes DLLs and server_location.txt.

There should be exception handling so that the program displays a more friendly error message, instead of a stack trace (as is the case currently).

Forward all frequency messages

Add an option to forward all frequency messages, even those that don't begin with the user's callsign.

This would be useful mostly for controllers.

Dump stack traces to log.txt

Whenever FcomClient crashes, the stack trace (i.e. fatal errors) should be saved to log.txt for easier debugging.

GUI

The current command-line interface is straightforward and works, but isn't exactly the most user-friendly.

Create a graphical user interface (GUI) for the program. This will require some refactoring, as the existing code is coupled rather tightly to the command-line interface.

Off-frequency messages forwarded

Frequency messages over a frequency the user isn't tuned to also get forwarded.

Seems like the FSD server will broadcast frequency messages to all logged-in users within a certain radius.

Controller messages over frequency addressed to multiple frequencies

Sometimes, when a controller sends a message over their frequency, their messages are addressed to multiple frequencies. In particular, it seems that the message is transmitted over both the controller's primary frequency and their ATIS frequency.

Example:

  • A controller has the frequency 118.100, and an ATIS frequency of 132.850
  • Messages will appear to be addressed to @18100&@32850
  • e.g. #TMXXX_TWR:@18100&@32850:Insert message here

From the data currently available, it seems that this does not occur with CTR controllers. However, the above-mentioned issue may simply not have surfaced yet, due to FCOM users mainly receiving text messages while far away from the airport the ATIS is associated with.

Notify user if Discord code in use is invalid

Provide some sort of feedback in the GUI if a forwarded message uses a Discord code not associated with any user (e.g. it expired, or the user removed it via the remove bot command), so that the user knows that the code being used has expired.

The API returns a HTTP 400 error if the Discord code isn't registered to any user, so that can be used by the client to detect such an error.

FCOM Client crash problem

2023-06-08 04:20:58Z: [CRASH] SharpPcap.PcapException: Unable to open the adapter (rpcap://\Device\NPF_{9F062D47-930C-4BC3-9361-74F82F25D344}). Error opening adapter: 文件名、目录名或卷标语法不正确(this is a error message in Chinese system, Google translate: Incorrect filename, directory name, or volume label syntax)。  (123)
   SharpPcap.LibPcap.LibPcapLiveDevice.Open(DeviceMode mode, Int32 read_timeout, MonitorMode monitor_mode)
   SharpPcap.LibPcap.LibPcapLiveDevice.Open(DeviceMode mode, Int32 read_timeout)
   FcomClient.UI.FcomClient.Main(String[] args)

I confirm that I have installed winpcap, and I am using the newest FCOM client

FcomClient tries to read/write to system32

Under unknown circumstances, FcomClient will try to read from C:\Windows\System32, instead of the current directory the executable is located in.

Re-downloading all files seems to fix the problem.

The following cases have been observed:

  1. server_location.txt, without admin privileges
    • Results in System.IO.FileNotFoundException
  2. log.txt, with admin privileges
    • Results in System.UnauthorizedAccessException

Screenshots of the above:

  1. https://cdn.discordapp.com/attachments/502296319340314634/554571734137831424/2019-03-11_18-49-50.png
  2. https://cdn.discordapp.com/attachments/502296319340314634/554572043778129940/2019-03-11_18-51-07.png

Aircraft config packets get forwarded

Aircraft config packets ($CQ, @N, @S etc.) also get forwarded by the client.

Examples (as seen inside Discord):

AAL123:
Here's a test message
$CQLAN2250:@94836:ACC:{"config":{"lights":{"strobe_on":true}}

LON_CTR:
Insert message here
@ N:EZY123:2000:1:47.81881:9.46934:33358:439:4257229744:-172

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.