纬图虚拟仪器论坛

 找回密码
 立即注册
搜索
查看: 1583|回复: 0

浅析如何使用状态机

[复制链接]
发表于 2022-11-7 17:51:01 | 显示全部楼层 |阅读模式
浅析如何使用状态机

通常操作Ginkgo适配器时,通用的流程是:
1. Scan devices.


2. Open device(s).


3. Init devices.


4. Operate device(s)
    Operate(Write, Read, Write & Read) 其中一个或者几个。   
    这里操作的时候,很多用户比较喜欢使用子线程去读或者写,甚至使用锁之类方法;
        由于对于一个适配器来说,完全是通过usb来完成的,所以,没必要使用子线程,锁之类方法,
       
        推荐一个大致的办法:
        使用简单的状态机来进行,就是设置不同的时刻的状态,比如:
        4.1 state_write_idle, state_pre_write, state_writing, state_written;
        4.2 state_read_idle, state_pre_read, state_reading, state_read;
            如果使用callback取数,有数据的时候,可以设置state_reading_callback,
                    在callback里收完数据后,切换到state_data_ready,把数据交给main loop, main loop按需处理.
       
5. Close devices.


6. Exit app.



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|纬图虚拟仪器

GMT+8, 2024-12-22 16:24 , Processed in 0.092731 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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