This commit is contained in:
2026-01-16 01:17:28 +01:00
parent 30688ad644
commit 5ced01c010
2 changed files with 25 additions and 6 deletions

View File

@@ -419,7 +419,7 @@ func (c *Client) handleInterlockStatus(handle string, statusMap map[string]strin
defer c.statusMu.Unlock() defer c.statusMu.Unlock()
if state, ok := statusMap["state"]; ok { if state, ok := statusMap["state"]; ok {
c.lastStatus.Tx = (state == "TRANSMIT" || state == "TUNE") c.lastStatus.Tx = (state == "TRANSMITTING" || state == "TUNE")
log.Printf("FlexRadio: Interlock state=%s, TX=%v", state, c.lastStatus.Tx) log.Printf("FlexRadio: Interlock state=%s, TX=%v", state, c.lastStatus.Tx)
} }
} }
@@ -428,6 +428,9 @@ func (c *Client) handleSliceStatus(handle string, statusMap map[string]string) {
c.statusMu.Lock() c.statusMu.Lock()
defer c.statusMu.Unlock() defer c.statusMu.Unlock()
// Quand on reçoit un message de slice, on a au moins une slice active
c.lastStatus.ActiveSlices = 1
if rfFreq, ok := statusMap["RF_frequency"]; ok { if rfFreq, ok := statusMap["RF_frequency"]; ok {
if freq, err := strconv.ParseFloat(rfFreq, 64); err == nil && freq > 0 { if freq, err := strconv.ParseFloat(rfFreq, 64); err == nil && freq > 0 {
c.lastStatus.Frequency = freq c.lastStatus.Frequency = freq
@@ -436,6 +439,10 @@ func (c *Client) handleSliceStatus(handle string, statusMap map[string]string) {
if c.onFrequencyChange != nil { if c.onFrequencyChange != nil {
go c.onFrequencyChange(freq) go c.onFrequencyChange(freq)
} }
} else if freq == 0 {
// Fréquence 0 dans le message de slice = slice inactive
c.lastStatus.Frequency = 0
c.lastStatus.RadioInfo = "Slice inactive"
} }
} }
@@ -494,7 +501,6 @@ func (c *Client) parseInfoResponse(data string) {
} }
c.radioInfo[key] = value c.radioInfo[key] = value
log.Printf("FlexRadio Info: %s = %s", key, value)
} }
} }
@@ -528,10 +534,16 @@ func (c *Client) parseSliceListResponse(data string) {
if c.lastStatus != nil { if c.lastStatus != nil {
c.lastStatus.ActiveSlices = len(slices) c.lastStatus.ActiveSlices = len(slices)
if len(slices) == 0 { // NE PAS effacer la fréquence ici !
c.lastStatus.Frequency = 0 // La fréquence est gérée par handleSliceStatus
c.lastStatus.Mode = ""
// Seulement mettre à jour RadioInfo si vraiment pas de slices
if len(slices) == 0 && c.lastStatus.Frequency == 0 {
c.lastStatus.RadioInfo = "Radio is on without any active slice" c.lastStatus.RadioInfo = "Radio is on without any active slice"
} else if len(slices) == 0 && c.lastStatus.Frequency > 0 {
// Cas spécial : fréquence mais pas de slice dans la liste
// Peut arriver temporairement, garder l'info actuelle
c.lastStatus.RadioInfo = fmt.Sprintf("Active on %.3f MHz", c.lastStatus.Frequency)
} }
} }
c.statusMu.Unlock() c.statusMu.Unlock()

View File

@@ -256,7 +256,7 @@
<!-- FlexRadio Section --> <!-- FlexRadio Section -->
<div class="flex-section"> <div class="flex-section">
<div class="flex-icon" class:connected={connected} class:disconnected={!connected}> <div class="flex-icon" class:connected={connected} class:disconnected={!connected}>
📻 📻
</div> </div>
{#if showFrequency} {#if showFrequency}
@@ -279,6 +279,13 @@
{mode} {mode}
</span> </span>
{/if} {/if}
<!-- AFFICHAGE TX - SEULEMENT SI TX EST VRAI -->
{#if txEnabled}
<span class="tx-indicator">
TX
</span>
{/if}
{:else if showRadioOnWithSliceNoFreq} {:else if showRadioOnWithSliceNoFreq}
<!-- Radio is on with slice but frequency is 0 (maybe slice just created) --> <!-- Radio is on with slice but frequency is 0 (maybe slice just created) -->