correct bugs AG
This commit is contained in:
@@ -178,21 +178,22 @@ func (c *Client) pollLoop() {
|
||||
|
||||
func (c *Client) initialize() error {
|
||||
// Get antenna list
|
||||
log.Println("AntennaGenius: Getting antenna list...")
|
||||
antennas, err := c.getAntennaList()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to get antenna list: %w", err)
|
||||
}
|
||||
|
||||
log.Printf("AntennaGenius: Found %d antennas", len(antennas))
|
||||
for i, ant := range antennas {
|
||||
log.Printf("AntennaGenius: Antenna %d: number=%d, name=%s", i, ant.Number, ant.Name)
|
||||
}
|
||||
|
||||
c.antennasMu.Lock()
|
||||
c.antennas = antennas
|
||||
c.antennasMu.Unlock()
|
||||
|
||||
// Subscribe to port updates
|
||||
if err := c.subscribeToPortUpdates(); err != nil {
|
||||
return fmt.Errorf("failed to subscribe: %w", err)
|
||||
}
|
||||
|
||||
// Initialize status
|
||||
// Initialize status BEFORE subscribing so parsePortStatus can update it
|
||||
c.statusMu.Lock()
|
||||
c.lastStatus = &Status{
|
||||
PortA: &PortStatus{},
|
||||
@@ -202,6 +203,23 @@ func (c *Client) initialize() error {
|
||||
}
|
||||
c.statusMu.Unlock()
|
||||
|
||||
log.Println("AntennaGenius: Status initialized, now subscribing to port updates...")
|
||||
|
||||
// Subscribe to port updates (this will parse and update port status)
|
||||
if err := c.subscribeToPortUpdates(); err != nil {
|
||||
return fmt.Errorf("failed to subscribe: %w", err)
|
||||
}
|
||||
|
||||
// Request initial status for both ports
|
||||
log.Println("AntennaGenius: Requesting additional port status...")
|
||||
_, _ = c.sendCommand("port get 1") // Port A
|
||||
_, _ = c.sendCommand("port get 2") // Port B
|
||||
|
||||
c.statusMu.RLock()
|
||||
log.Printf("AntennaGenius: Initialization complete - PortA.RxAnt=%d, PortB.RxAnt=%d",
|
||||
c.lastStatus.PortA.RxAnt, c.lastStatus.PortB.RxAnt)
|
||||
c.statusMu.RUnlock()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -334,6 +352,7 @@ func (c *Client) parseAntennaLine(line string) Antenna {
|
||||
func (c *Client) subscribeToPortUpdates() error {
|
||||
resp, err := c.sendCommand("sub port all")
|
||||
if err != nil {
|
||||
log.Printf("AntennaGenius: Failed to subscribe: %v", err)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -347,6 +366,7 @@ func (c *Client) subscribeToPortUpdates() error {
|
||||
}
|
||||
}
|
||||
|
||||
log.Println("AntennaGenius: Subscription complete")
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -437,6 +457,20 @@ func (c *Client) SetAntenna(port, antenna int) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// DeselectAntenna deselects an antenna from a port (sets rxant=00)
|
||||
// Command format: "C1|port set <port> rxant=00"
|
||||
func (c *Client) DeselectAntenna(port, antenna int) error {
|
||||
cmd := fmt.Sprintf("port set %d rxant=00", port)
|
||||
log.Printf("AntennaGenius: Sending deselect command: %s", cmd)
|
||||
resp, err := c.sendCommand(cmd)
|
||||
if err != nil {
|
||||
log.Printf("AntennaGenius: Deselect failed: %v", err)
|
||||
return err
|
||||
}
|
||||
log.Printf("AntennaGenius: Deselect response: %s", resp)
|
||||
return nil
|
||||
}
|
||||
|
||||
// Reboot reboots the device
|
||||
func (c *Client) Reboot() error {
|
||||
_, err := c.sendCommand("reboot")
|
||||
|
||||
Reference in New Issue
Block a user