Skip to main content

Posts

Showing posts with the label javascript

Today I (am) Learn(ing) : Project Fugu and Web Capabilities

 Everything old is new again. OK, I just said that to sound fancy. Actually though, the Project TouCans CW histogram , (you know for measuring the consistency of your dits and dahs while sending Morse Code), uses WebUSB and Web Audio , (respectively), to implement a connection to the serial port, where it listens to a Halikey, and to generate a sidetone. That's the old part.  Here's the new part, (to me anyway). It turns out both of those web capabilities are either documented by or a result of something called Project Fugu . I stumbled across the Google Develper site while browsing, (pun totally intended), through the extensions in my Chrome browser. It turns out Chrome Apps are going away, (finally a Google technology I didn't use is disappearing), and should be replaced by, (in Google's estimation), Web Apps, (which are referenced as Progressive Web Apps by Google Gemini.)  The capabilities available are pretty cool and include Web Bluetooth and a File System...

Adding Elevation Control to QSO Maps with ChatGPT and Cesium

When making our QSO skip maps one of the issues we encounter is that the lines from our station to the F2 layer don't always start right at the ground. This seems to be an artifact of CZML and the fact that the Earth is not a sphere, but rather an ellipsoid, and even then, there are all those hills and mountains. The initial QSOs can wind mapped as up coming from underground: or, they can wind up starting from above the surface of the Earth In any event, it's been necessary with each map to adjust the elevation height of our station. I've yet to find a parameter to set in a czml that makes the starting point always be on the ground. "clampToGround" works for polylines that are always on the ground, but not polylines whose next point has an altitude greater than zero as the ground station to F2 layer polylines do. I added a feature into the JavaScript mapping application this week that allows me to adjust the height of all of the QSO's starting points at...

Today I Learned: Pattern for Specifying the CZML Map to Load in an iframe URL

 I learned a way to make my POTA activation blogs a bit easier to create today.  When to Use the Pattern When you'd like to use the same Sandcastle to open multiple different czml files without having to edit Sandcastle code every time. More generally, the pattern can be used to pass any number of URL encoded parameters to your Sandcastle Javascript via your Sandcastle's web address. What the Pattern Enables The user can specify a czml file URL like this https://sandcastle.cesium.com/standalone.html?mapurl=https://raw.githubusercontent.com/hcarter333/rm-rbn-history/refs/heads/main/maps/2024_11_18_Civic_Center_Juan_Bautista.czml#c=dV... Where the #c is the usual 64 bit encoded contents of your Sandcastle from the share link. Your Sandcastle will need to include this  code  through line 15. At that point, you'll have the address of your map in the variable mapurl2 and can do whatever you like with it. In the example above, the czml file pointed to is simply loaded into...

Week In Review: TouCans Straight Key, ChatGPT, Tuna Salad Sender, and Halikey

 I started out the week without a straight key for TouCans. By the end of the week, I'd worked with ChatGPT to make the WiFi straight key for TouCans into something pretty cool that worked on both Windows and Chromebook. (Alsthough, Windows is one cool thing ahead at the moment, I'll get to that.) Having decided I wasn't going to be able to get a wired straight key, i took another look at why I'd gone down the wired straight key path. TouCans has had a WiFi sraight key since last year. The issue is that it didn't work with the Chromebook. It was written in Python, and it was a bit more of a chore than I wanted fix it.  Linux on the Chromebook didn't want to provide keyboard access so that a key could be pressed as a straight key.  It also didn't want to provide speaker access, so there was no sidetone. I decided to do an end run and asked ChatGPT to translate the Python version of the WiFi straight key to JavaScript. ChatGPT pulled off the task so perfectly ...

ChatGPT Prototyping of Ham Radio Mapping Applications

 I used ChatGPT to get a quick and dirty protoype for an application that would make a map of each individual QSO from a given CZML map I had already created. All in all, it took ChatGPT and I about 20 minutes to come up with a prototype of an application that takes one of my CZML POTA maps, walks through it QSO by QSO, creates a label on the map with embedded QSO information and then dumps out a text encoded PNG image of the QSO on an OpenStreets map. =======================draft notes, skip to next equals line till polished============== Here's my first question to ChatGPT: Can I write Javascript that positions and frames a Cesium Ion map based on data read in through a czml file? I quickly followed that up with  Please write a method to zoom to any polyline defined in the czml file. Zoom to each polyline, wait three seconds, and then zoom to the next polyline in the order they are defined in the file. Next, I asked for a single line at a time: Please modify the method...