使用 golang 可以开发一套监控系统吗

9 天前
 florentino

最近接了个活,主要是给 FSU 动环监控单元白盒(芯片:NUC980,内存:128MB),开发一套监控软件,可以采集接在白盒上面的各种 DI,AI 设备的数据,并且上报到监控中心

查询了下,FSU 系统,好像都是通过 C/C++ 写的,可是我不太会,但是我会一点 golang 写,查询了下,golang 好像可以用于嵌入式开发

就想问下有没有使用过 golang 开发过类似的软件的,以及使用 golang 会不会有什么坑

3045 次点击
所在节点    Go 编程语言
33 条回复
wangritian
9 天前
不懂这块业务,但 go 可以读取 dll 或 so ,通过 cgo 调用 c 函数
sampeng
9 天前
如果连 link 都不明白的是大概率没戏的。
hefish
9 天前
行肯定是行的,但入 2 楼大佬所讲, 怎么也得知道点嵌入式的东西吧。 不然肯定有困难啊。。
实际 python ,php 都行啊。。。go 自然也行。
crackidz
9 天前
FsuOS 不行吧,它支持的是各种驱动,有 Python 支持但限设备
guanzhangzhang
9 天前
prometheus 的 metrics ,
你的白盒上运行 node_exporter 或者自己开发个
qq316107934
9 天前
128MB 内存用 Golang 太容易 OOM 了,不推荐,Golang runtime 对内存分配比较宽松
florentino
9 天前
@hefish 我说嵌入式可能不准确,这个盒子厂家提供编译好的 Linux 系统, 我只要写软件跑在上面就行, 我的想法是, 解决我的软件与串口之间的通讯,以及如何将数据上报到数据中心(就是中国铁塔的 B 接口)就行了, 担心的点也就是会不会最后我写完了, 跑起来发现系统资源不够,毕竟才 128M 内存
florentino
9 天前
@qq316107934 我的逻辑比较简单,就是采集数据,上报数据, 没有其他更复杂的逻辑, 想着应该够用吧
sampeng
9 天前
@florentino 128M 内存居然说是才。。。我看了一眼我手上的 stm32 的板子就 512K 。你别引一堆第三方包,尽量自己维护数据结构,内存都是能算出来的。虚拟机不是个大 sb ,只知道吃完内存才吐。所以要你自己控制和维护。尤其是调用 so 开的口子的时候千万别忘了回收内存之类的。因为大部分的接口都是只是申请了内存,但是释放一定会再给你另一个接口。这是最容易踩的坑。如果你直接是串口+http 。。。。。哪就没 so 啥事了。标准库标准操作。。内存多少都是看得到的。。
sampeng
9 天前
甚至更简单粗暴一点就是内存直接都是纯静态的。比如全局 1k 大的数组。多少内存都是能算出来的。就没 gc 啥事
yuedanwork
9 天前
嵌入式这内存够了。。。你这盒子本身功能就不多 要那么大内存干嘛

至于 Go 能有啥坑 都那么多用的了

最后,真决定用 Go ,请用 TinyGo
qq316107934
9 天前
@florentino #8 少引用第三方 SDK 的话够用的,大不了 OOM 了之后再拉起或者计划性重启。看了下串口通信在 linux 下只需要 syscall 就行了,如果知道协议纯自己写的话,挺方便的,不用引用 so 库。如果要引用的话 cgo 是有点麻烦的,可以看下 SWIG
scopeccsky1111
9 天前
注意一下处理器架构, 如果引用库的话可能不兼容
jim9606
9 天前
行肯定是行的,更多是省不省心,例如 golang 并不是一个对 interprop 友好的语言,要引非 golang 的库会比较麻烦。如果你熟悉 golang ,需求又不存在调三方库全部自己写的那就无太大所谓。
mengzhuo
9 天前
大概看了下 FsuOS 的文档……好口语化啊……

不建议你在上面开发了,毕竟 Go 已经开始升级最低要求的 Linux 版本(貌似大于 3.0?),硬要开发的话,可以通过“联通白盒化标准”那里的东西进行采集和上报
Martens
9 天前
TinyGo
florentino
9 天前
@mengzhuo 嗯 不基于他们, 他们也是 C 写的打包成了系统, 我的软件是在 Linux4.9 上面跑, 就是使用 go 语言实现他们类似的功能,采集数据+告警+上报 就行了
viayie
9 天前
@mengzhuo 翻了一眼,同感:

> "当作为仪表控制器软件时,由于 SMDDevice 只是负载采集告警和控制,具体仪表的业务逻辑还需要一个控制器实现,就是这个。"
GeekGao
9 天前
@Martens TinyGo 有内存管理缺陷
Vitumoc
9 天前
要不直接买个能采集动环数据的盒子呢?也不贵来着,肯定比开发便宜

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1078298

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX