Updated on 2019-06-18 11:33:02
SHA1: aa07cf157b9e4f496c46db4447b37e84036822d7
Size: 1.09 MB

A TS3 plugin that supports moving between channels through tuning of flight simulator radios


BFSGSimCom was originally written for members of the Bristol Flight Simulator Group (BFSG) after we'd migrated from TeamSpeak2 to TeamSpeak3 only to find that functionality that we'd previously enjoyed with the earlier version was no longer available to us.

That functionality was to be able to automatically switch between TeamSpeak channels through tuning the radios in our simulated aircraft.

The program was born from work originally undertaken by ATC_ROO which offered the basic channel move functionality on the 32-bit version of TeamSpeak only.

From there it grew such that it was possible to offer a degree of control over which channels in the list were to be considered for tuning (the BFSG has three separate groups which maintain their own channel set on the same server - we didn't want people moving between those channel sets), multiple modes of operation (Disable, Manual - where it is possible to manually move oneself between channels as well as tuning stations, and Automatic - where the only movement between channels is controlled from the cockpit), the behaviour of the plugin when no station is tuned, the consideration of range as a factor in whether or not a station may be tuned through to most recently allowing more than one frequency to be assigned to a single TeamSpeak channel.


The plugin should work with any simulation that provides an FSUIPC style interface. It has however only been tested with FS9, FSX, P3D (I don't know which versions) and X-Plane 10 and 11.

In it's simplest mode of operation, all that is required for setup is for the COM frequency to be associated with the channel to be included in its name, its topic or its description and these are searched in that order for information.

For more advanced operation where range is to be considered, the Lat/Lon may be specified in any of the above fields in the format Nxx.xxxx Exxx.xxxx (obviousy S and W may be used).

The plugin ships with a global database of stations, the ID of which (such as EGGD_TWR, or KLAX_APP) may be provided in place of explicit frequencies and location specification. Where an ID is provided along with frequency or location data, the user supplied data overrides that derived from the database. The client log shows what the plugin has extracted and from where.

How the plugin works for a given user is controlled by that user though - presently it's not possible to force all clients to do the same thing.

Whilst I'm happy to consider suggestions for improvement, I make no promises that I'll be able to include them.


Release History

v0.13.0 - 2019-06-14


#42 - Doesn't move when all frequencies are channels (not subchannels) #45 - Settings file location


#41 - Update to SQLite #43 - The configuration dialog can be misleading when it says "root" #44 - Latest version of SQLiteCpp is 2.3 #48 - "Manual" mode should be "Semi-automatic" #49 - Warning C4091 in shlobj.h

v0.12.0 - 2018-09-22


#39 - Need to start recognising "intermediate" (8.33KHz) frequencies.

v0.11.1 - 2018-09-03


#38 - Plugin no longer retains settings between TS3 invocations.

v0.11.0 - 2018-07-21


#27 - Information window doesn't update on sim disconnect #29 - Plugin overwrites TS program name in "Help/About"


#3 - Information window - additional information and colour added to BFSGSimCom data in TS3 window #28 - Additional station types required - OPS and AFIS stations now recognised (with 50nm distance). #30 - Updated SQLite - to version 3.23.1 #31 - Updated Airport Frequency Data - to state as at 20180721 #32 - Updated SQLiteCpp library - to version 2.2.0 #33 - Add "advanced" option to BFSGSimCom information display in TS window #34 - Frequency database content - unrecognised station types now removed from database to reduce install size #36 - Add display of "Root" channel and "Untuned" channed to BFSGSimCom information display in TS3 window.

v0.10.0 - 2017-04-28


#20 - Multiple frequencies for one TeamSpeak Channel. This is now supported - either through frequencies defined in the channel name, topic or description, or in rare cases where a single station in the airport frequency data has more than one frequency. #24 - Correct manner in which plugin files are prepared to make them compatible for upload to myTeamSpeak

0.9.2 - 2017-04-19


#23 - New version of TeamSpeak Client Plugin SDK. Supports v3.1.1.1, API version 22.

0.9.1 - 2017-01-30


#5 - New airport Frequency Data as of 2017-01-30 #11 - SQLite3 update SQLite3 updated to 3.18 #23 - New version of TS Plugin SDK Now built with v3.1.1.0 of the plugin SDK and reports API version 21 required.

Bug Fixes

#21 - Version of TeamSpeak client won't start with the plugin installed.

0.9 - 2016-11-05


#5 - New airport frequency data as of 2016-11-05 #14 - SQLite3 Update SQLite3 updated to 3.15.1 #15 - SQLiteCpp Update The library used for SQLite access has been updated to version 2.0.0 #18 - Additional logging to support problem diagnosis Some users have reported problems which are not reproducable. Additional logging included to allow diagnosis.

Bug Fixes

#16 - Program crashes on location move #17 - Uncommanded Channel Move #19 - On first connection, current channel is not set correctly.

0.8 - 2016-05-07


#8 - Make it possible to ignore station range calculations. An option has been added to turn off range checking in determining whether a station may be tuned. When off, any station anywhere can be tuned. #10 - Add option to restart in "Off" mode. Users may wish to force the plugin to remain dormant on initial load following a program restart, particularly if they prefer to work in "Automatic" mode. #11 - SQLite3 Update The SQLite code has been updated to 3.12.2 #12 - SQLiteCpp Update The library used for SQLite access has been updated to version 1.3.0 #13 - Differentiate between different UIPC datasets. The program now distinguishes what has changed to cause the tuning callback to be called.

0.7 - 2016-01-01


#1 - Update channel database if TS3 channels are changed whilst running. Changed such that the plugin keeps track of changes that are made to channel definitions. It's no longer necessary to disconnect and reconnect to pick them up. #4 - Indicate current mode in plugin menu. It's now clear when the plugin menu is opened which mode the plugin is operating in, "Disabled", "Manual" or "Automatic" #5 - Updated airport data - current data included in database.

Bug Fixes

#2 - Information window not updating. #6 - Not possible to tune a station with no lat/lon #7 - Automatic move on connection.

0.6 - 2015-12-24

Code migrated to Github - issues will be tracked in there from now on. This is the first version where the plugin is built into ".ts3_plugin" files.

Earlier versions were maintained in a private Git repository.