update
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
@@ -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}
|
||||||
@@ -280,6 +280,13 @@
|
|||||||
</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) -->
|
||||||
<div class="radio-status">
|
<div class="radio-status">
|
||||||
|
|||||||
Reference in New Issue
Block a user