Skip to content
This repository was archived by the owner on Dec 24, 2024. It is now read-only.

Commit c4cc7f5

Browse files
committed
eda: properly detect connection failures in serveRFM
1 parent 476c0e7 commit c4cc7f5

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

eda/device.go

+9-5
Original file line numberDiff line numberDiff line change
@@ -309,14 +309,18 @@ func (dev *Device) configureFromCSV() error {
309309
}
310310

311311
func (dev *Device) Initialize() error {
312+
var err error
312313
if len(dev.cfg.daq.addrs) != 0 {
313314
dev.msg.Printf("initialize rfm sinks: %v", dev.rfms)
314315
for i := range dev.rfms {
315-
dev.serveRFM(i, dev.cfg.daq.addrs[i])
316+
err = dev.serveRFM(i, dev.cfg.daq.addrs[i])
317+
if err != nil {
318+
return err
319+
}
316320
}
317321
}
318322

319-
err := dev.initFPGA()
323+
err = dev.initFPGA()
320324
if err != nil {
321325
return fmt.Errorf("eda: could not initialize FPGA: %w", err)
322326
}
@@ -748,7 +752,7 @@ func (dev *Device) initRun(run uint32) error {
748752
return nil
749753
}
750754

751-
func (dev *Device) serveRFM(i int, addr string) {
755+
func (dev *Device) serveRFM(i int, addr string) error {
752756
rfm := dev.rfms[i]
753757
dev.msg.Printf(
754758
"dialing RFM(dif=%d, slot=%d) to %q...",
@@ -757,13 +761,13 @@ func (dev *Device) serveRFM(i int, addr string) {
757761

758762
conn, err := net.Dial("tcp", addr)
759763
if err != nil {
760-
dev.msg.Printf("could not connect to %q for rfm=%d: %+v", addr, rfm, err)
761-
return
764+
return fmt.Errorf("could not connect to %q for rfm=%d: %+v", addr, rfm, err)
762765
}
763766
dev.daq.rfm[i].id = dev.difs[rfm]
764767
dev.daq.rfm[i].slot = rfm
765768
dev.daq.rfm[i].sck = conn
766769
dev.msg.Printf("dialing RFM(%d) to %q... [ok]", rfm, addr)
770+
return nil
767771
}
768772

769773
func (dev *Device) loop() {

0 commit comments

Comments
 (0)