Windows 平台的上位机开发,需要用 CAN 通信,能用 go 吗?
之前做互联网的,现在转到了搞嵌入式的公司做物联网相关工作,小公司要求啥都会,现在把服务器、小程序、APP 、上位机这些都交给我来做。小程序、APP 这些有点经验都好说,但是现在要做上位机,功能是连接 BMS 进行数据监控和参数配置,需要使用 CAN 通信。
我一开始想的是用 electron 之类的,但是发现只对串口通信支持较好,做 CAN 通信很难。又调研了下,发现了 wails 这个东西,问了下 AI ,说 go 可以做底层开发,但是深入了解后发现还是需要用 cgo 之类的,感觉坑有点多,主要是之前没做过这方便,完全不知道可行性如何。不知道有没有大佬用 go 实现过类似的功能呢?
如果用 go 实现难度很大,要做上位机是不是从学习成本、开发效率这些来说,应该选择 avalonia ,这个相对来说能更快速的上手? UI 和 CAN 通信肯定不会跑在一个线程上,干脆把界面和通信拆开来做
electron 之类的做界面,负责 CAN 通信的部分单独起一个服务 上位机用 winform 或者 wpf 比较方便吧 做上位机,依然优先推荐最原始的那套,因为硬件厂商提供的资料会丰富,甚至有些是 sdk 直接调用
除非纯粹通信,你有精力有文档能从头解析,否则不要用太新的语言,为了有车坐还要从其他地方移植一套生产线很不值 主要是看你买的 USB‑CAN 支持哪些语言的 sdk ,一般来说,可能底层都是 C 库或者 dll ,其他语言封装了库,你做上位机来调 pyqt 会不会容易上手多一点 建议使用 winform ,大部分提供的 sdk 选择都很少,上位机要么 c++ 要么 c#,上位机基本都是跑在 win 上面 can 转网络模块,你直接用 TCP/UDP 通讯就行了。模块有个好处,自带滤波。不然数据大了,你处理不过来。 上位机下位机的话 C#是第一选择,至于 UI ,其实没必要 avalonia 这个是跨平台的,你也不需要,winform 和 wpf 就行,当然用 avalonia 也没问题 不要考虑什么上手不上手,看看 SDK 用的什么,然后就选那个。
页:
[1]
2