Slide 47
Slide 47 text
Goでの実装に関する考察
●
●
シリアル通信(最大3系統)
–
サテライトコンパス
–
風向・風速センサ
–
水深センサ
sources := []Source{
NewSerialSource("compass", "/dev/ttyUSB0", 4800),
NewSerialSource("wind", "/dev/ttyUSB1", 4800),
NewSerialSource("depth", "/dev/ttyUSB2", 4800),
NewUDPSource("ais", ":10110"),
}
UDP通信(1系統)
–
AIS受信機
→のコードのイメージで
通信管理が実現できそう
2026年9月11日(金)
type Source interface { // Serial, UDP でそれぞれ実装する
Name() string
// I/O エラーは内部で再接続を試みる
Run(ctx context.Context, out chan<- Line) error
}
for _, s := range sources {
go s.Run(ctx, sentences) // sentences chan<- Sentences
}
Go Conference 2026
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
47