How CATSync works under the hood…

I have seen some discussion and speculations on the internet on how my software might be working under the hood. Some people even find it unbelievable that I can control a browser and/or a website externally, and are even concerned that I might be emulating fake keyboard or mouse commands or use other hacking techniques.

In the worst case they may even think I use vodoo or black magic for achieving it.

Well, the truth is very simple:

My program is written in VB.NET language under Visual Studio 2017 Community (the free edition of Visual Studio). My software does not control any external browser installed onto your Windows system, but comes with its own fully blown internal browser engine for rendering the websites. This is unfortunately also the reason why my installer downloads are hefty 53MB in size (otherwise it would be just 2-3MB, hi).

My browser module is based on the Google Chrome engine and therefore natively supporting HTML5 based audio streaming. This is also the reason why you do not need to install any Java Runtimes to see and hear the WebSDR. It will just work out of the box.

Basically my software is a slimmed down Chrome browser with some “smart” addons 🙂

The actual control of the modes and frequency setting is done by injecting Javascript into the running WebSDR server. The Javascript executes the same functions than the user would execute by e.g. typing something or clicking some UI elements. So I am not emulating a keystroke or a mouseclick, but I call the resulting server function directly.

Now, you might think how can someone just inject Javascript into a running website code? Very easy….it’s in principle the same as if you press F12 in Chrome or IE to access the Developer Tools. From there you can just open the Javascript shell and execute any Javascript commands you want on any website (e.g. call functions or read values of UI elements). And that’s exactly how CATSync works (with the exception that I do not need to do the detour via the F12 developer tools).

Currently, I am very busy researching ways of how to reliably react to user events (such as clicking a spot on the bandmap or a button or turning the mouswheel) to allow reading the updated frequency or perhaps even mode changes and sending the changes on the WebSDR via CAT to the radio for bidirectional control. Currently only the radio can control the WebSDR, but not viceversa. So this would be a great enhancement.

So stay tuned for some of my next version updates 🙂

73 de DJ0MY

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s