(I have not tried this one yet.)
# -------------------------------------------------------------
# HF Propagation Data Fetcher for Windows BBS Bulletins
# -------------------------------------------------------------
# Configure this path to point straight to your local BBS text bulletin folder $OutputFile = "C:\BBS\Files\hfprop.txt"
$Url = "
https://hamqsl.com"
try {
# Set Security Protocol to handle modern TLS web handshakes seamlessly
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Download and parse the raw live XML data structure
$xml = Invoke-RestMethod -Uri $Url -UserAgent "Mozilla/5.0"
$solarData = $xml.solardata
# Extract primary solar parameters
$updated = $solarData.updated.Trim()
$sfi = $solarData.solarflux.Trim()
$ssn = $solarData.sunspots.Trim()
$aIndex = $solarData.aindex.Trim()
$kIndex = $solarData.kindex.Trim()
# Create a hash map table to store calculated daytime/nighttime band states
$bands = @{}
foreach ($band in $solarData.calculatedconditions.band) {
$name = $band.name
$time = $band.time
$status = $band.'#text'.Trim()
if (-not $bands.ContainsKey($name)) {
$bands[$name] = @{}
}
$bands[$name][$time] = $status
}
# Construct the fixed-width ASCII grid layout strings
$lines = @(
"+-----------------------------------------------+",
"| CURRENT HF BAND PROPAGATION |",
"| Updated: {0,-36} |" -f $updated,
"+-----------------------+--------------+--------+",
"| Band / Frequency | Daytime | Night |",
"+-----------------------+--------------+--------+"
)
# Standard band sequence loop mirroring solar.w5mmw.net
$targetBands = @("80m-40m", "30m-20m", "17m-15m", "12m-10m")
foreach ($b in $targetBands) {
$day = if ($bands[$b].ContainsKey('day')) { $bands[$b]['day'] } else { "---" }
$night = if ($bands[$b].ContainsKey('night')) { $bands[$b]['night'] } else { "---" }
$lines += "| {0,-21} | {1,-12} | {2,-6} |" -f $b, $day, $night
}
$lines += "+-----------------------+--------------+--------+"
$lines += "| Solar Flux Index: {0,-4} Sunspot Number: {1,-4} |" -f $sfi, $ssn
$lines += "| Geomag A-Index: {0,-4} Geomag K-Index: {1,-4} |" -f $aIndex, $kIndex
$lines += "+-----------------------------------------------+"
# Force a clean write straight out to disk in standard ASCII text encoding
$lines | Out-File -FilePath $OutputFile -Encoding ascii -Force
}
catch {
Write-Error "Failed to retrieve or generate HF propagation ASCII file: $_"
Exit 1
}
-- Sean KS4TD
... The motor will rotate in the wrong direction.
--- MultiMail/Win
* Origin: Outpost BBS * Johnson City, TN (1:18/200)