12下一页
返回列表 发布新帖
查看: 267|回复: 13

Windows 平台的上位机开发,需要用 CAN 通信,能用 go 吗?

Taro发表于 2026-5-21 14:19:04 来自手机版 | 查看全部 |阅读模式
之前做互联网的,现在转到了搞嵌入式的公司做物联网相关工作,小公司要求啥都会,现在把服务器、小程序、APP 、上位机这些都交给我来做。
小程序、APP 这些有点经验都好说,但是现在要做上位机,功能是连接 BMS 进行数据监控和参数配置,需要使用 CAN 通信。
我一开始想的是用 electron 之类的,但是发现只对串口通信支持较好,做 CAN 通信很难。又调研了下,发现了 wails 这个东西,问了下 AI ,说 go 可以做底层开发,但是深入了解后发现还是需要用 cgo 之类的,感觉坑有点多,主要是之前没做过这方便,完全不知道可行性如何。不知道有没有大佬用 go 实现过类似的功能呢?
如果用 go 实现难度很大,要做上位机是不是从学习成本、开发效率这些来说,应该选择 avalonia ,这个相对来说能更快速的上手?
回复

使用道具 举报

1683271364发表于 2026-5-21 14:19:08 来自手机版 | 查看全部
UI 和 CAN 通信肯定不会跑在一个线程上,干脆把界面和通信拆开来做
electron 之类的做界面,负责 CAN 通信的部分单独起一个服务
回复

使用道具 举报

夜游神发表于 2026-5-21 15:20:26 来自手机版 | 查看全部
上位机用 winform 或者 wpf 比较方便吧
回复

使用道具 举报

吴先生发表于 2026-5-21 15:27:13 来自手机版 | 查看全部
做上位机,依然优先推荐最原始的那套,因为硬件厂商提供的资料会丰富,甚至有些是 sdk 直接调用
除非纯粹通信,你有精力有文档能从头解析,否则不要用太新的语言,为了有车坐还要从其他地方移植一套生产线很不值
回复

使用道具 举报

Vion发表于 2026-5-21 15:53:09 来自手机版 | 查看全部
主要是看你买的 USB‑CAN 支持哪些语言的 sdk ,一般来说,可能底层都是 C 库或者 dll ,其他语言封装了库,你做上位机来调
回复

使用道具 举报

1527823088发表于 2026-5-21 16:15:33 来自手机版 | 查看全部
pyqt 会不会容易上手多一点
回复

使用道具 举报

不争发表于 2026-5-21 16:38:05 来自手机版 | 查看全部
建议使用 winform ,大部分提供的 sdk 选择都很少,上位机要么 c++ 要么 c#,上位机基本都是跑在 win 上面
回复

使用道具 举报

1685591610发表于 2026-5-21 17:06:04 来自手机版 | 查看全部
can 转网络模块,你直接用 TCP/UDP 通讯就行了。模块有个好处,自带滤波。不然数据大了,你处理不过来。
回复

使用道具 举报

黑豹发表于 2026-5-21 17:28:25 来自手机版 | 查看全部
上位机下位机的话 C#是第一选择,至于 UI ,其实没必要 avalonia 这个是跨平台的,你也不需要,winform 和 wpf 就行,当然用 avalonia 也没问题
回复

使用道具 举报

cc卡布达发表于 2026-5-21 17:44:41 来自手机版 | 查看全部
不要考虑什么上手不上手,看看 SDK 用的什么,然后就选那个。
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表