update
This commit is contained in:
@@ -419,7 +419,7 @@ func (c *Client) handleInterlockStatus(handle string, statusMap map[string]strin
|
||||
defer c.statusMu.Unlock()
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
@@ -428,6 +428,9 @@ func (c *Client) handleSliceStatus(handle string, statusMap map[string]string) {
|
||||
c.statusMu.Lock()
|
||||
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 freq, err := strconv.ParseFloat(rfFreq, 64); err == nil && freq > 0 {
|
||||
c.lastStatus.Frequency = freq
|
||||
@@ -436,6 +439,10 @@ func (c *Client) handleSliceStatus(handle string, statusMap map[string]string) {
|
||||
if c.onFrequencyChange != nil {
|
||||
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
|
||||
log.Printf("FlexRadio Info: %s = %s", key, value)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -528,10 +534,16 @@ func (c *Client) parseSliceListResponse(data string) {
|
||||
if c.lastStatus != nil {
|
||||
c.lastStatus.ActiveSlices = len(slices)
|
||||
|
||||
if len(slices) == 0 {
|
||||
c.lastStatus.Frequency = 0
|
||||
c.lastStatus.Mode = ""
|
||||
// NE PAS effacer la fréquence ici !
|
||||
// La fréquence est gérée par handleSliceStatus
|
||||
|
||||
// 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"
|
||||
} 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()
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
<!-- FlexRadio Section -->
|
||||
<div class="flex-section">
|
||||
<div class="flex-icon" class:connected={connected} class:disconnected={!connected}>
|
||||
📻
|
||||
📻
|
||||
</div>
|
||||
|
||||
{#if showFrequency}
|
||||
@@ -279,6 +279,13 @@
|
||||
{mode}
|
||||
</span>
|
||||
{/if}
|
||||
|
||||
<!-- AFFICHAGE TX - SEULEMENT SI TX EST VRAI -->
|
||||
{#if txEnabled}
|
||||
<span class="tx-indicator">
|
||||
TX
|
||||
</span>
|
||||
{/if}
|
||||
|
||||
{:else if showRadioOnWithSliceNoFreq}
|
||||
<!-- Radio is on with slice but frequency is 0 (maybe slice just created) -->
|
||||
|
||||
Reference in New Issue
Block a user