Difference between revisions of "Scripting"
(→Introduction to C#) |
(→Example_Scripts) |
||
Line 10: | Line 10: | ||
− | == | + | ==Example Scripts== |
There are example scripts in the download directory http://dxlog.net/sw/download/script_examples/ | There are example scripts in the download directory http://dxlog.net/sw/download/script_examples/ |
Revision as of 07:07, 12 April 2015
Introduction to C#
DXLog.net has been written in such a way that bespoke C# scripts can be written by the end user and will be compiled into DXLog.net at runtime.
This makes DXLog.net very versatile and with a little C# knowledge a very powerful contest logging tool.
To learn the basics about C# there are is lots of free on-line help like http://www.homeandlearn.co.uk/csharp/csharp.html
Microsoft have a free fully functional version of Visual Studio called Community 2013, available from https://www.visualstudio.com/en-us/products/visual-studio-community-vs
Example Scripts
There are example scripts in the download directory http://dxlog.net/sw/download/script_examples/
The following script is an example of a C# script which keeps the Elecraft K3 keyer speed in sync with the CW speed set in DXLog.net
//INCLUDE_ASSEMBLY System.dll //INCLUDE_ASSEMBLY System.Windows.Forms.dll //INCLUDE_ASSEMBLY CWKeyer.dll using System; using System.Windows.Forms; using CWKeyer; namespace DXLog.net { public class Script : ScriptClass { FrmMain mainForm; public void Initialize(FrmMain main) { mainForm = main; if (mainForm._cwKeyer != null) mainForm._cwKeyer.CWSpeedChange += new CWKey.CWSpeedChangeDelegate(handleCWSpeedChange); } public void Deinitialize() { if (mainForm._cwKeyer != null) mainForm._cwKeyer.CWSpeedChange -= handleCWSpeedChange; } public void Main(FrmMain main, ContestData cdata, COMMain comMain) { } private void handleCWSpeedChange(int radioNumber, int newSpeed) { CATCommon radioObject = mainForm.COMMainProvider.RadioObject(radioNumber); if (radioObject == null) { mainForm.SetMainStatusText(String.Format("CAT object for radio {0} isn't available!", radioNumber)); return; } radioObject.SendCustomCommand(String.Format("ks0{0};", newSpeed)); mainForm.SetMainStatusText(String.Format("Radio {0} CW speed changed to {1} wpm!", radioNumber, newSpeed)); } } }