PhantomSDR Support Forum

General Category => PhantomSDR Wishlist => Topic started by: on6dp on Feb 13, 2025, 06:38 PM

Title: DXCluster
Post by: on6dp on Feb 13, 2025, 06:38 PM
HI,
I have seen today the WEBSDR of http://websdr.srr76.ru/

He has linked the spot of DxCluster to WebSDR. When anybody click on the frequency of spot, the WEBsdr switch
automatically on that frequency

Is it possible to do the same into PhantomSDR ?
73 Paul
Title: Re: DXCluster
Post by: Bas ON5HB on Feb 14, 2025, 03:59 PM
I have checked the code and it looks like it can be done.

But I also seen some Microsoft code in there, so it can be difficult.
I may use it's own cluster server or database or such.

This is the code they use to do it:

<!-- 2014 EA3KZ WEBSDR - Cluster - Based on webcluster interface by  EA1NK and DL5DI-->
    <script type="text/javascript">
    function getData() {
        file = "webclusterXML?t=" + Math.random();
    var xml_data = loadXML(file);
        var html = "";
        if (xml_data != null) {
   
    //SPOTS TABLE
    var spots = xml_data.getElementsByTagName("SPOT");
    html = "<h3>Dx Spots</h3>";
    html+= "<table id='spots_table'>";
    for(i=0;i<spots.length;i++){
    html+="<tr class='spot'>";
    var from = spots[i].getElementsByTagName("FROM")
.childNodes.nodeValue;
    var dx = spots[i].getElementsByTagName("DX").childNodes.nodeValue;
    var qrg = spots[i].getElementsByTagName("QRG").childNodes.nodeValue;
    var utc = spots[i].getElementsByTagName("UTC").childNodes.nodeValue;
    var text = spots[i].getElementsByTagName("TEXT").childNodes.nodeValue;
    html+="<td class='utc'>" + utc.trim() + "</td>" + "<td  style='text-align: left'; class='from'>" + from.trim() + "</td>" + "<td  style='text-align: left'; class='dx'><a href='http://www.qrz.com/db/" + dx.trim() + "' target='new'>" + dx.trim() + "</a></td>" + "<td  style='text-align: right'; class='qrg'><a href=javascript:setfreqb(" + qrg.trim() +")>" +   qrg.trim()  + "</a></td>" + "<td class = 'text'>" + text.trim() +"</td>";
    html+="</tr>";
}
    html+="</table>";
    document.getElementById('spots').innerHTML=html;
    }
}
    function loadXML(path) {
        var xmlDoc;
        if (window.XMLHttpRequest) {
            xmlDoc = new window.XMLHttpRequest();
            xmlDoc.open('GET', path, false);
            xmlDoc.setRequestHeader('Access-Control-Allow-Origin', '*');
            xmlDoc.send("");
            return xmlDoc.responseXML;
        } else if (ActiveXObject("Microsoft.XMLDOM")) {
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = false;
            xmlDoc.load(path);
            return xmlDoc;
        }
        alert("Error loading XML file");
        return null;
    }
    getData();
    setInterval(function() {
        getData()
    }, 40000);
    </script>

It's not compatible with ours, so it needs rework. And other stuff....