论坛风格切换切换到宽版
  • 4925阅读
  • 8回复

关于【KC901S】的上位机软件,大家有什么建议 [复制链接]

上一主题 下一主题
离线BD8AAA
 
发帖
4998
只看楼主 倒序阅读 0楼 发表于: 2015-02-28
即将为KC901S开发上位机软件接口。

目前该接口在硬件上是串口,经USB与电脑连接,在电脑上显示为COM口。

我的想法是,公布指令表,大家按照开源软件的方法来搞上位机软件。

目前的基本指令有:

上位机申请控制
上位机主动踢出
下位机通知转就地
各模式的点测量指令
各模式的设置指令
所有的系统设置项目
指令接收许可指令
指令接收禁止指令
校准模块(这个比较复杂)
等等

KC901S上有指令缓存和数据缓存,采用异步处理方式。

简单的说,就是除了测试条件的设置项目之外,上位机需要逐个频点的下发指令,然后逐个频点的收到数据,在上位机处理显示。

对于S11矢量数据,目前的想法是只提供矢量反射系数(直角坐标系),上位机再根据需要进行处理和显示。

希望朋友们:

1、提供开发方式方面意见建议,特别是类似项目的开发经验;
2、软件的架构设计的意见建议;
3、指令结构、控制流程方面的建议;
4、如果有朋友愿意主持上位机软件的开发,请举手,我将提供力所能及的支持;
5、为软件起个名称

采用开源方式的目的是希望更多朋友参与开发,使该软件将来能够扩展更多功能,其中包括高级矢量分析工具和数据共享等。
[ 此帖被BD8AAA在2015-02-28 16:58重新编辑 ]
发展科技爱好,倡导科学理性
刘虎,028-81928955,liuhu@liuhu.org,支付宝bbs@kechuang.org,仪器技术群:11302965。
离线BH4TXN
发帖
15098
只看该作者 1楼 发表于: 2015-02-28
必须上网口,都什么年代了还串口
微信公众号BH4TXN
----------------
野外穿越、搜救必备--北斗终端海聊产品授权代理商
E文网站代理群:368045942   DIGI模式群:152930364 免费算APRS-IS验证码
淘宝小店:https://bh4txn.taobao.com 英文网站注册及日志代理                
指纹密码刷卡智能锁 智能家居 900兆:要奇奇陆吧三铃摇摇就散
扣扣:肆肆叁壹肆玖壹壹陆  支付宝:bh4txn艾特gmail.com  微信:BH4TXN_AF5QP  QTH:无锡市梁溪区家乐苑25-1号
离线BH1KZM
发帖
1604
只看该作者 2楼 发表于: 2015-02-28
网口 和 串口 都是一样的,写法不同而已。

串口相对简单,更通用,而且更易于编程。

上位机建议把串口封装成一个驱动接口,这样更利于用户的二次开发。

我这几年也写了一些和串口相关的程序,设计过一些硬件,也遇到过一些奇怪的问题,不过都解决了。

我的一点建议,还请大家指点:
1、硬件设计上, USB 接口芯片不要考虑 CP2102X ,PL2303X,CH375 之类的二线芯片,只用FT232 系列的,我们之前做飞控,到做测井,上天入地都试过了,FT232  最为健壮,对于仪器这样的产品,应该用最好的。

2、设计的时候可以使用USB FT232 的DTR, CTS,DTS 引脚,并不是做硬件的流控,而是上位机可以控制这些引脚和 下位机做一些IO上的通信,例如硬件复位, BOOTLOADER 的更新等,相当是上位机的GPIO

3、协议设计上,建议是:包头,长度,数据,CRC 的形式, 虽然上下位机写起来都有要麻烦一点,但程序的通信过程是健壮的,否则上位机可能会把下位机搞死,有时也可能因为莫名奇妙的原因导致上位机总是多收到几个字符,而解码失败,(同样的代码,不同的USB接口芯片)。

下面是我们的一个产品中的通信结构:
typedef struct
{
    uint16 nMagicNum;   //包起始标志
    uint8 byCMD;        //包命令字
    uint8 byLen;        //包长,包含包头及最后一字节的CRC
} S_FW_PACKET_HEAD;

/*!
* 包的结构是
****************************************************************
*   nMagicNum  | byCMD | byLen | 包体                   |CRC   *
*--------------+-------+-------+------------------------+------*
*   2bytes     | 1byte | 1byte | byLen-sizeof(S_PACKET) |1byte *
****************************************************************
*/

//FW_VERION  获取版本信息

typedef struct
{
    S_FW_PACKET_HEAD  scHeader;    // 通用包信息
    uint8             byRev;       // 凑数 包按2字节对齐
    uint8             byCRC;       // 校验
} S_DL_FW_VERSION;

typedef struct
{
    S_FW_PACKET_HEAD  scHeader;    // 通用包信息
    uint16            nProductId;  // 产品ID
    uint8             byPcbVer;    // PCB版本
    uint8             byBtldVer;   // bootloader 版本
    uint8             byFwVer;     // 固件版本
    uint8             byCRC;       // 校验
} S_UP_FW_VERSION;

其实我一直想改成 Protobuf的方式通信,因为我们在不同产品中遇到了大小端和结构对齐的问题。 ARM7是大端,而PIC是小端,PC机也是小端,不过Protobuf 一直都没有在我们产品上用过,虽然是GOOGLE家的,据说protobuf 解决了协议升级,向下兼容,大小端,二进制传输的问题。

4、一定要支持 固件升级,bootloader 升级(bootloader升级API 可暂不开放)

5、 基本的命令可以公布, 适合一些水平较高的用户,对于大多数用户,提供一个驱动接口,例如一个DLL文件,DLL 文件封装了很多底层的通信接口,例如多线程读串口等! 还可以把基本的接口封装成COM接口,让VB用户或者其他语言的用户使用,之前我们合作开发的伙伴用VB,遇到结构,大小端,位域等问题,非常的头疼,经常让我们改接口,而C++或者C的驱动就没有这些麻烦。

6、上位机可以考虑用QT 开发, 如今的QT 已经很强大了,编辑器非常的好用,类库也无数的多,并且是跨平台的。

其实还有很多想法,一时间想不起来了。
思想决定行为,行为养成习惯,习惯形成性格,性格决定命运!
BH1KZM QQ:1889518 MB:一三三九一五二一一一五
依妹儿:呼号@gmail.com
离线BD8AAA
发帖
4998
只看该作者 3楼 发表于: 2015-02-28
回 BH4TXN 的帖子
BH4TXN:必须上网口,都什么年代了还串口[表情]  (2015-02-28 17:37) 

串口只是便于用户自己开发,因为这个最简单,学两天就可以写,而且速率可以满足需求。

搞成网口也好办,但是用户如果没搞过的话就比串口麻烦一点,大家再考虑考虑吧。
[ 此帖被BD8AAA在2015-02-28 21:45重新编辑 ]
发展科技爱好,倡导科学理性
刘虎,028-81928955,liuhu@liuhu.org,支付宝bbs@kechuang.org,仪器技术群:11302965。
离线BD8AAA
发帖
4998
只看该作者 4楼 发表于: 2015-02-28
回 BH1KZM 的帖子
BH1KZM:网口 和 串口 都是一样的,写法不同而已。
串口相对简单,更通用,而且更易于编程。
上位机建议把串口封装成一个驱动接口,这样更利于用户的二次开发。
....... (2015-02-28 18:28) 

正在拜读您的大作,感谢~

现在的硬件是FT232-HUB,插上USB以后,电脑上会看到一个磁盘,和一个COM口,数据上下没有问题。
[ 此帖被BD8AAA在2015-02-28 21:24重新编辑 ]
发展科技爱好,倡导科学理性
刘虎,028-81928955,liuhu@liuhu.org,支付宝bbs@kechuang.org,仪器技术群:11302965。
离线BA7CK
发帖
76350
只看该作者 5楼 发表于: 2015-02-28
离线BD8AAA
发帖
4998
只看该作者 6楼 发表于: 2015-02-28
回 BA7CK 的帖子
BA7CK:落伍。。 (2015-02-28 19:33) 

请发表重要指示,老大说做多先进咱就可以做多先进
发展科技爱好,倡导科学理性
刘虎,028-81928955,liuhu@liuhu.org,支付宝bbs@kechuang.org,仪器技术群:11302965。
离线bg8srq
发帖
2318
只看该作者 7楼 发表于: 2015-02-28
是不是以后不整上位、组态、ADC、FPGA...都没法玩DIY了,越来越高大上啊!
ID:BG8SRQ  NAME:毕磊
QTH:云南省曲靖市麒麟区南苑2区朝阳40 POS:655000
RIG:K3 ANT:K4GP
NO. 壹叁叁零捌柒肆伍捌捌捌 QQ:21115259 Email:qjbilly@QQ.com
离线BH1KZM
发帖
1604
只看该作者 8楼 发表于: 2015-03-02
回 BD8AAA 的帖子
BD8AAA:正在拜读您的大作,感谢~
现在的硬件是FT232-HUB,插上USB以后,电脑上会看到一个磁盘,和一个COM口,数据上下没有问题。 (2015-02-28 19:18) 

您太客气了!


我只是一个喜欢HAM的程序员。

KC901S 什么时候上市?
思想决定行为,行为养成习惯,习惯形成性格,性格决定命运!
BH1KZM QQ:1889518 MB:一三三九一五二一一一五
依妹儿:呼号@gmail.com