Description

Программа предназначена для объединения данных, передаваемых бортовыми системами воздушных судов (ВС) в целях обслуживания воздушного движения (ОВД), в единый поток, доступный по сети. При этом могут объединяться данные ответчиков (транспондеров) ВС: автоматического зависимого наблюдения в режиме радиовещания (АЗН-Б/ADS-B), ответные сообщения на запросы вторичного обзорного радиолокатора (ВОРЛ) в режимах Mode S и Mode A/C,

The program has ability to receive data across the network from one or more sources, such as instances of dump1090, rtl1090, modesdeco2, ADSB# or any other Mode S decoding application. At the same time, the program is able to work with hardware Mode S receivers that have a serial output data through the USB interface.
The received data in the program will be combined into a single stream that can be converted into required formats and then rebroadcast as the feed to multiple TCP or UDP ports. Additionally, it allows multiple connections to a single TCP port.
It’s a versatile application that uses little system resources.

Program options

The required configuration for the specific task is specified by using command line options. Each option starts with a double dash. Different options are separated by spaces. Each option specifies a single function and can contain additional parameters.
Available list of options will be displayed when program is run without any options or with one --help .

ModeSMixer2 v.20160119
Program options:
  -h [ --help ]                 This help message
  --inConnect <arg>             Input TCP connector. Format: host:port
  --inConnectId <arg>           Input connector with ID. Format: host:port:id
  --inServer <arg>              Input TCP server. Format: port
  --inServerId <arg>            Input TCP server with Id. Format: port:id
  --inServerUdp <arg>           Input UDP server. Format: port
  --inSerial <arg>              Input Serial (USB). Format: port[:speed[:flow_control]]. FlowControl: none,software,hardware
  --outConnect <arg>            Output connector. Format: type:host:port. Types: beast,avr,avrmlat,msg,sbs30006
  --outConnectId <arg>          Output TCP connector with Id. Format: host:port[:name:lat:lon:TEXT:freq]
  --outConnectUdp <arg>         Output UDP connector. Format: type:host:port. Types: beast,avr,avrmlat,msg,sbs30006
  --outServer <arg>             Output TCP server. Format: type:port. Types: beast,avr,avrmlat,msg,sbs30006,sbs10001,fatsv
  --globes <arg>                Enable Globe-S server. Format: port:tablename:stationid
  --web <arg>                   Enable Web Server on port (default: off)
  --web-auth <arg>              Enable web auth username:password (default: off)
  --disable-web-log             Disable Web Log (default: on)
  --silhouettes <arg>           Set Silhouettes directory
  --pictures <arg>              Set Aircraft Pictures directory
  --db <arg>                    Set DB Filename
  --frdb <arg>                  Set FlightRoute DB Filename
  --location <arg>              Receiver location Lat:Lon. Example: 36.2:-15.3
  --add-reference-point <arg>   Add a new reference point for calculating distance and azimuth to the map. Example: 37.1234:-14.9876:[Label1]
  --add-points arg              Add additional points (single or list) with coordinates to the map. Example: 36.2345:-15.3456:[Label1] [38.5432:-12.6789:[Label2]] ...
  --localtime                   Local Time in MSG format output (default: UTC)
  --filter-expire <arg>         Filter expire time, sec (default: 20)
  --filter-count <arg>          Filter min count (default: 6)
  --filter-time <arg>           Filter min time, sec (default: 60)
  --filter-nocountry            Disable ICAO Country filter (default: on)
  --filter-ic                   Enable Interrogator Code filter (default: off)
  --flight-expire-time <arg>    Flight expire time, sec (default: 3600)
  --log-noconsole               Disable logging to console (default: on)
  --log-file <arg>              Enable logging to file (default: off)
  --log-level <arg>             Set logging level 0..5 (default: 4). 0 disabled, 1 error, 2 warning, 3 notice, 4 info, 5 debug
  --metric                      Switch to metric system of distance measurement (default: imperial)

Principle of naming options

We can distinguish three groups of arguments: type of connection, type of filter and type of log.

The type of connection is determined depending on data direction: input (--in...) or output (--out...). There are two mechanisms for obtaining input data:  (--inServer) – local socket server listening for connections on the given path or (--inConnect) – client pull.
Output data feed can be rebroadcast over (--outServer) –  local socket server listening for connections on the given path or (--outConnect) – client pull.
If instead of a standard TCP/IP protocol connection uses connectionless sockets over UDP/IP, then it is added to the option name: --inServerUdp or --outConnectUdp.

Detailed explanation of each option

  • --inConnect <arg> — program establishes  an outbound TCP connection to remote output server with[host:port]and pulls data from it over network. The host can be IP address or Domain name.  If you have two or more data sources (feeds) and you want merge their, then just add the same number of options--inConnect <arg>like this:
modesmixer2 --inConnect 192.168.1.10:30005 [--inConnect 192.168.1.20:30001] …
  • --inConnectId <arg> — program establishes  an outbound TCP connection to remote output server with[host:port]and pulls data from it over network. The host can be IP address or Domain name. Unlike above, this option allows to assign a unique identifier to this input, which can be displayed in field ‘Source ID’ and in aircraft label line on the built-in WEB. For example, as feed with MLAT data. If you have two or more data sources (feeds) and you want merge their, then just add the same number of options--inConnectId <arg>like this:
modesmixer2 --inConnectId 192.168.1.10:30005:MLAT1 [--inConnectId 192.168.1.20:30001:MLAT2] …
  • --inServer <arg> — program runs its own TCP server on[port], which is waiting for incoming connections from remote clients, establishes an inbound connections on the given port and receives incoming data.
modesmixer2 --inServer 30002 [--inServer 30003] …
  • --inServerId <arg> — program runs its own TCP server on[port], which is waiting for incoming connections from remote clients, establishes an inbound connections on the given port and receives incoming data. Unlike above, this option allows to assign a unique identifier to this input, which can be displayed in field ‘Source ID’ and in aircraft label line on the built-in WEB. For example, as feed with MLAT data.
modesmixer2 --inServerId 31004:MLAT [--inServerId 31005:KJFK] …
  • --inServerUdp <arg> — program runs its own UDP server on[port], which is listens for UDP packets received with the given port number from remote clients. UDP protocol is connectionless and a server can immediately listen input data from clients.
modesmixer2 --inServerUdp 9742 …
  • --inSerial <arg> — program establishes serial connection to device, which directly connected to a physical interface on the same computer, and receives data from it. This is usually a Mode S receiver, such as Beast or microADSB, which connected to USB port. The operating system creates a virtual serial port: on Windows, this will be COMx, and in Unix — /dev/ttyUSBx or /dev/ttyACMx. Here «x» corresponds to the specific number of device.
    The [:speed] sets the data rate through port in bits per second. The port speed and device speed must match.
    A serial port may use signals in the interface to pause and resume the transmission of data. The [:flow_control] sets a method of flow control. The hardware handshake signals (hardware flow control) use the RS-232 RTS/CTS or DTR/DSR signal circuits. Another method of flow control (software flow control) uses special characters such as XON/XOFF to control the flow of data. Set [none] when the flow control not used. Use the type of flow control in accordance with the recommendations for the model of your receiver.
    In Windows:
modesmixer2.exe --inSerial COM1:3000000:hardware …

In Unix:

./modesmixer2 --inSerial /dev/ttyUSB0:3000000:hardware …
  • --outConnect <arg> — program establishes an outbound TCP connection to remote input server with[host:port]and pushes data to it in format [type] over network. The [host:] can be an IP address or Domain name. A format [type:] can be beast, avr, avrmlat, msg or sbs30006.
modesmixer2 --outConnect beast:192.168.1.20:10003 [--outConnect msg:192.168.1.20:30013] …
  • --outConnectId <arg> — program establishes  an outbound TCP connection to the special remote input server with[host:port]and pushes data to it in AVR format over network. The [host:] can be an IP address or Domain name. Data have the additional special field [:name:lat:lon:TEXT:freq] in the end of every AVR message.
modesmixer2 --outConnectId 192.168.1.100:8888:UUDD:12.3456:-45.6789:20 …
  • --outConnectUdp <arg> — when using UDP protocol packets are just sent to the recipient with [host:port]. The [host:] can be an IP address or Domain name. The [type:] can be beast, avr, avrmlat, msg or sbs30006 format. The sender won’t wait to make sure the recipient server received the packet — it will just continue sending the next packets. If recipient server miss some UDP packets it can’t ask for those packets again. It has no handshaking dialogues, and thus exposes any unreliability of the underlying network protocol to the program. There is no guarantee of delivery, ordering, or duplicate protection. But this overhead means the servers can communicate more quickly.
modesmixer2 --outConnectUdp avr:192.168.1.20:4756 …
  • --outServer <arg> — program runs its own TCP server on the [port], which is waiting for incoming connections from remote clients, establishes an outbound connection on the given port with them and transmits output data. The [type:] can be beast, avr, avrmlat, msg, sbs30006, sbs10001, fatsv.
modesmixer2 --outServer msg:30003 [--outServer sbs10001:10001] …
  • --globes <arg> — provides direct connection to Globe-S for RTL1090 program by jetvision.de — a light and fast radar viewer via a HTTP interface and can be interfaced over long distances. In this option the values of the parameters [port:tablename:stationid] must be identical to Globe-S. You need to set a name to Table 2[:tablename]. Default it’s called table2 but you might want to use something more cryptic for security reasons. The [:stationid] can be any text label, for example, ICAO code of closest airport.
modesmixer2 --globes 31008:table2:KJFK
  • --web <arg> —  program runs its own HTTP server on the [port].
  • --web-auth <arg> — enable WEB authentication with the given [username:password]. Program uses basic authentication method and in WEB browser on the client computer displays a dialog box where users can enter [username:password] which were set in the option.
  • --disable-web-log —  the WEB page ‘Logs’, where displays a log of the console messages, will not be displayed on the site.
  • --silhouettes <arg> — specify the path to the directory that contains your collection of aircraft type silhouettes images.
  • --pictures <arg> — specify the path to the directory that contains your collection of aircraft pictures.
  • --db <arg> — specify the path to the directory with your basestation.sqb file in sqlite3 database format with information about the aircraft that it sees.
  • --frdb <arg> — specify the path to the directory with your flightroutes.sqb file in sqlite3 database format with information about the aircraft flight routes.
  • --location <arg> — program uses method a locally unambiguous decoding for position messages and it needs to know the location of the receiver (latitude and longitude) for decode the initial aircraft location on ground. It will be used as a reference position known to be within 45 nm (= 83.34 km) of the true target position. Enter the coordinates of location of the receiver (latitude and longitude) in decimal degrees, like this: –location 55.1234:-114.9876.
  • --add-reference-point <arg> — creates on Google map the new reference point for calculating distance and azimuth to the selected aircraft as an alternative to ‘–location’  point. The new calculated values will be displayed in detail fields ‘Azimuth and Distance’. This reference point can be specified only once with any name. Example usage – for marking out the runway threshold: –add-reference-point 54.2446:82.7991:RW.
  • --add-points <arg> — creates on the Google map one or several points with given coordinates. Near the points will be displayed the distance from the selected aircraft. You can specify one or several points, their parameters – coordinates and name must be separated from each other by a space. Example usage – marking out Initial/Final approach waypoints (IAWP/FAWP) or LOM/LMM for observation of approach path: –add-points 54.2882:88.0451:LOM 54.4557:89.3456:LMM.
  • --localtime — PlanePlotter has feature, when rebroadcast MSG message uses UTC time, an error occurs. If you have this issue – use this option.
  • --filter-* — these values indicate how many times an aircraft identifier has to be seen over a given number of seconds in messages that can be tested for corruption before the identifier is assumed to be correct.
  • --filter-nocountry — control whether ICAO address that are not assigned to a country will be accepted as valid.
  • --filter-ic — prohibits the decoding of Interrogator Codes.
  • --flight-expire-time <arg> — after an aircraft has been removed from the display program will keep it in its list of tracked aircraft, so that if it starts receiving messages from the aircraft again it can show the track that it had for the aircraft up till the point that it lost reception. This value is the number of seconds (default 3600) that it will keep an aircraft in the tracking list before after the last message is received from it.
  • --log-* <arg> — set type of log.
  • --metric — switch to metric system of distance measurement as opposed to imperial by default.

ModeSMixer

Updated on 2016-12-29T14:17:00+00:00, by sergsero.