Ciribob Posted September 6, 2015 Share Posted September 6, 2015 (edited) This is no longer supported - Use SimpleRadio Standalone - No TS Required http://forums.eagle.ru/showpost.php?p=2826669&postcount=1 I decided I wanted to learn C/C++ and some C# so I set myself the challenge of writing my own Radio plugin for DCS. DCS-SimpleRadio is what I've come up with, and its a plugin similar to TARS, ARIES. This isn't meant to detract from ARIES or TARS, as they're much more advanced than my implementation, I just thought it would be a good idea to share :) Latest version v.1.4.1 Latest Update Post: http://forums.eagle.ru/showpost.php?p=2722532&postcount=80 Features: Full radio integration with all clickable cockpit aircraft including M2000C Full C-101 Integration - UHF and VHF fully working with volume control on both radios. Limited Hawk integration - UHF working - VHF not working - Volume not working [*]Working Volume Control - A10C radio starts with all radio volumes at 0 as does the C-101! [*]Working Frequency Control [*]Maximum of 3 radios supported per aircraft [*]FC3 Aircraft have realistic radio setup where possible [*]Stand alone optional radio status panel [*]Ability to hear others and talk to them when not currently in game or not in an aircraft (hotkey to disable this if you want) [*]Ability to force the Radio system on when spectating, Ground Commanding or JTAC [*]Active receiving radio indicated by the frequency text changing from orange to white - shows which radio you're hearing someone on [*]Support for Guard Mode on UH-1/A10C/F-86/Mi-8/KA-50/M2000C [*]Optional basic radio effects. Config - TS3 Window -> Plugins ->DCS-SimpleRadio ->Enable Disable Radio FX Known Limitations On some US radios the currently selected pre-set radio channel selector doesn't seem to work, as in all the frequencies are the same... No Signal degradation or line of sight limitations to broadcasts unlike TARS Hawk and C-101 implementation is a workaround As the radios aren't implemented yet on both the Hawk and C-101 I've used the position of all the switches and knobs to work out the frequency. If the power to the aircraft is off but all the switches are set correctly the radio will still work in Teamspeak. Hopefully the Hawk and C-101 will receive updates soon as part of 1.5/2.0 and then I can implement fully and correctly. Full documentation and download on GitHub: Link: https://github.com/ciribob/DCS-SimpleRadio Downloads: https://github.com/ciribob/DCS-SimpleRadio/releases This project would not have been possible without Teo and his MARS project: https://github.com/olanykvist/mars Thanks! :) Edited July 31, 2016 by Ciribob Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord Link to comment Share on other sites More sharing options...
Teo Posted September 6, 2015 Share Posted September 6, 2015 ...writing my own... Yea right... You could at least say "Thank you" when borrowing lots of the code (changing the namespace doesn't count...). Or just fork/pullrequest me if you want to help? Original repo Link to comment Share on other sites More sharing options...
Ciribob Posted September 6, 2015 Author Share Posted September 6, 2015 If I'd know who you were on the forums i'd have messaged you first... Also i linked to your repo in the README on github and thank the author. The LUA code is very similar but the Teamspeak plugin is implemented in a different way. Yes we both used JSON, but do a diff and you'll see we've used difference approaches for synchronising and also communicating with the GUI. You have two way communication with DCS, I do not, mines all one way. You have hotkeys in your plugin, I use the hotkeys in teamspeak. Not sure what your GUI is in, mines WPF and C# We've both done similar projects but in different ways... and yes I used your plugin to understand how the hell you build a TS3 plugin, hence the reference. :) Sorry if I caused offence, happy to amend the README or the post above more. Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord Link to comment Share on other sites More sharing options...
Teo Posted September 6, 2015 Share Posted September 6, 2015 Ok, no offence taken. Didn't notice the reference in the readme at first. I'll take it as a compliment when my first public repo is used as a reference :) BTW, I've reorganised/cleaned my export script and added support for guard frequencies (as a secondary receiver). Feel free to take a look and check if it's of any use for you. Link to comment Share on other sites More sharing options...
Ciribob Posted September 6, 2015 Author Share Posted September 6, 2015 Awesome, thanks man! I'll take a look :) As I say, happy to add info about your project to above and on github and I'll make the link to your project more explicit. :) There's another radio plugin that you might find useful, I'll find the link tomorrow. It's a radio system for ARMA and they've modelled radio power dropoff at range which is what I'd like to have a look at next. All the radio transmitter powers are in the lua for all the aircraft in watts so I know initial power. No idea how I'd do line of sight though, possibly compute it in the lua every couple of seconds to all other users. Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord Link to comment Share on other sites More sharing options...
Teo Posted September 6, 2015 Share Posted September 6, 2015 I've been looking into LoS and range dropout myself as well. I export own 3d position every 2 seconds and do the calculations in the plugin. Every time a transmission is received, range and LoS from transmitter is calculated. Unfortunately, I got stuck at implementing an audio filter that gradually reduces the sound quality when nearing out of range/LoS, so those functions isn't commited to github yet. Link to comment Share on other sites More sharing options...
Aviators Posted September 6, 2015 Share Posted September 6, 2015 great job ;) L'importante non è stabilire se uno ha paura o meno, è saper convivere con la propria paura e non farsi condizionare dalla stessa. Ecco, il coraggio è questo, altrimenti non è più coraggio ma incoscienza. Link to comment Share on other sites More sharing options...
Ciribob Posted September 7, 2015 Author Share Posted September 7, 2015 This is the radio system for arma that I think does signal dropoff. https://github.com/michail-nikolaev/task-force-arma-3-radio I've got some very old physics textbooks so guess its back to school for radio! I'll let you know if I find anything useful. I guess where it gets very tricky is when you're just off LOS but you should be able to hear the radio due to the way the signal propagates? Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord Link to comment Share on other sites More sharing options...
HiJack Posted September 7, 2015 Share Posted September 7, 2015 This is the radio system for arma that I think does signal dropoff. https://github.com/michail-nikolaev/task-force-arma-3-radio I've got some very old physics textbooks so guess its back to school for radio! I'll let you know if I find anything useful. I guess where it gets very tricky is when you're just off LOS but you should be able to hear the radio due to the way the signal propagates? Will this be a teamspeak integrated plugin with the same trouble as Aries and TARS or are you creating the voice engine separate from Teamspeak? You know the current teamspeak plugins have a limitation for number of players in one channel? Link to comment Share on other sites More sharing options...
Ciribob Posted September 7, 2015 Author Share Posted September 7, 2015 Will this be a teamspeak integrated plugin with the same trouble as Aries and TARS or are you creating the voice engine separate from Teamspeak? You know the current teamspeak plugins have a limitation for number of players in one channel? I've never heard of that before, but I am new to this... As far as I know, you can configure Teamspeak to have as many users as you like per channel though i assume there is an upper limit for bandwidth? How many users have you tried with ARIES and TARS without issue? The most important thing to do is remove the flood limit, as otherwise you will have issues with clients being blocked. I've only tested with about 10 users but i've seen 35-40 users using ACRE, a similar radio system for ARMA that works in a similar way which seemed to work without issue. Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord Link to comment Share on other sites More sharing options...
HiJack Posted September 7, 2015 Share Posted September 7, 2015 Yes there may be different ways to program the plugin features but both Aries, TARS and the Arma radio requires you to basically disable the Anti Spoofing in Teamspeak. So there is a problem already there. I have not seen any stress tests lately but the last one was talking about 30 players on one teamspeak server. For larger teamspeak servers you do not want a system where 30 users is crashing the server for all 500 users. That is my problem, and because of this we are currently not using any radio mod. Link to comment Share on other sites More sharing options...
Ciribob Posted September 7, 2015 Author Share Posted September 7, 2015 (edited) Well I can reduce the meta data update rate to the ts3 server to reduce the load but its very likely you'll always trigger the flood limit as it only allows one update per second by default and a certain number in a period of time as well. How it currently works is each Player's data is sent to the ts3 server every 0.35 seconds and the server distributes it to all the other players. I am going to optimise that anyway so an update is only sent either every 5 seconds or if their data has changed. The only issue with sending when the data is changed is if someone changes their frequencies rapidly, obviously that change needs to be sent to everyone else and if you haven't changed the flood limit, that'll trigger it. The only real way round the flood limit is by having the player meta data (which frequency, current radio and position) sent to a different server rather than the teamspeak one. This is possible but means its more difficult to setup and use as you'll need a publicly accessible server somewhere for you to run the system on or setup port forwarding. I've just done a quick test on my PC and connected 25 TS3 clients and its seems to work ok. Screenshot attached, you can see the CPU usage for the server isn't very much so i don't see why it would cause an issue with a TS3 server hosted somewhere unless its running on a very slow pc or with very little bandwidth. Let me know if you do try it and have any issues :) Edited September 7, 2015 by Ciribob Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord Link to comment Share on other sites More sharing options...
Midnight Posted September 7, 2015 Share Posted September 7, 2015 It is seldom that I have seen more than 20 guys on a DCS server, maybe one or two like Virtual Aerobatics and the 104th. Then again not all the users are on TS, so this Radio should work great for most squadrons. Use the KISS principle here Ciribob and try to avoid making it too complex. Link to comment Share on other sites More sharing options...
Ciribob Posted September 7, 2015 Author Share Posted September 7, 2015 Thanks Midnight, I will try! :) New version v.1.1.1 Change log: Optimised TS3 sync code to sync once every 3.5 seconds or when the users radio state changes Small bug fix with the JADRO radio in the Mi8 Please Note: Breaking change with the protocol so if you downloaded an earlier version, make sure you update to this version Please let me know if you have any issues! Full documentation and download on GitHub: Link: https://github.com/ciribob/DCS-SimpleRadio Downloads: https://github.com/ciribob/DCS-SimpleRadio/releases Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord Link to comment Share on other sites More sharing options...
Ciribob Posted September 12, 2015 Author Share Posted September 12, 2015 New version v.1.1.3 Change log: Status Panel now has better integration with FC3 Aircraft Ability to drag the volume slider per radio for FC3 Aircraft instead of using a HotKey Ability to select an FC3 Aircraft Radio by clicking on either the status dot or the frequency Frequency buttons disabled when in a non FC3 Aircraft Better indication of when DCS-SimpleRadio is no longer connected to DCS Fixed bug with radio status panel if you were using unicast mode Please let me know if you have any issues or even if you use it! :) Full documentation and download on GitHub - I'll be updating the README with some info about the status panel later today if I get time. Link: https://github.com/ciribob/DCS-SimpleRadio Downloads: https://github.com/ciribob/DCS-SimpleRadio/releases Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord Link to comment Share on other sites More sharing options...
Aviators Posted September 12, 2015 Share Posted September 12, 2015 great ;) L'importante non è stabilire se uno ha paura o meno, è saper convivere con la propria paura e non farsi condizionare dalla stessa. Ecco, il coraggio è questo, altrimenti non è più coraggio ma incoscienza. Link to comment Share on other sites More sharing options...
Ciribob Posted September 16, 2015 Author Share Posted September 16, 2015 New version v.1.1.3.1 Change log: Full C-101 Integration - UHF and VHF fully working with volume control on both radios. Limited Hawk integration - UHF working - VHF not working - Volume not working As the radios aren't implemented yet on both the Hawk and C-101 I've used the position of all the switches and knobs to work out the frequency. If the power to the aircraft is off but all the switches set correctly the radio will work in Teamspeak. Hopefully the Hawk and C-101 will receive updates soon as part of 1.5/2.0 and then I can implement fully. Please let me know if you have any issues or even if you use it! :) If you have the previous version 1.1.3 then you only need to copy the LUA files in the script folder to "Saved Games/DCS/Scripts" Link: https://github.com/ciribob/DCS-SimpleRadio Downloads: https://github.com/ciribob/DCS-SimpleRadio/releases Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord Link to comment Share on other sites More sharing options...
Gaanalma Posted September 16, 2015 Share Posted September 16, 2015 Great!!! I think It's a great Idea if you update first post whit functionality and Know issue! Congrats and +++++++1 [sIGPIC][/sIGPIC] www.36stormovirtuale.net Link to comment Share on other sites More sharing options...
baltic_dragon Posted September 17, 2015 Share Posted September 17, 2015 Hey Ciribob! Thanks for your work, it really looks interesting and I am sure we will try it out! One question - if I understood correctly currently there is no "radio effect" implemented in the mod, i.e. the sound is exactly as heard via normal TS, right? If so, my question would be if you think it will work with additional plug-in that changes the sound of players, like CrossTalk? Link to comment Share on other sites More sharing options...
CallsignFrosty Posted September 17, 2015 Share Posted September 17, 2015 been off of computer for about a week so I need to catch up with these updates, the GUI looks great Ciri! Link to comment Share on other sites More sharing options...
Ciribob Posted September 17, 2015 Author Share Posted September 17, 2015 (edited) Hey Ciribob! Thanks for your work, it really looks interesting and I am sure we will try it out! One question - if I understood correctly currently there is no "radio effect" implemented in the mod, i.e. the sound is exactly as heard via normal TS, right? If so, my question would be if you think it will work with additional plug-in that changes the sound of players, like CrossTalk? Yup your exactly right. Its normal TS if you're on the same frequency as someone else with no radio effects. I've just had a quick look through CrossTalk's code and it looks like they don't use the client metadata that the plugin uses so they should work together without issues. I'd be very interested to hear if it does work, let me know how you get on :) Edited September 17, 2015 by Ciribob Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord Link to comment Share on other sites More sharing options...
Ciribob Posted September 17, 2015 Author Share Posted September 17, 2015 Great!!! I think It's a great Idea if you update first post whit functionality and Know issue! Congrats and +++++++1 Thanks Gaanalma, I've updated the first post as well. Let me know if you have any issues! Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord Link to comment Share on other sites More sharing options...
baltic_dragon Posted September 17, 2015 Share Posted September 17, 2015 Yup your exactly right. Its normal TS if you're on the same frequency as someone else with no radio effects. I've just had a quick look through CrossTalk's code and it looks like they don't use the client metadata that the plugin uses so they should work together without issues. I'd be very interested to hear if it does work, let me know how you get on :) Thanks, intend to use it tonight! Link to comment Share on other sites More sharing options...
Gaanalma Posted September 17, 2015 Share Posted September 17, 2015 ;) Starting test whit 36° Stormo Virtuale [sIGPIC][/sIGPIC] www.36stormovirtuale.net Link to comment Share on other sites More sharing options...
baltic_dragon Posted September 18, 2015 Share Posted September 18, 2015 Sorry, I didn't manage to run the test yesterday, will do so soon and will post my findings here! Link to comment Share on other sites More sharing options...
Recommended Posts