首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Argparse :如何设置参数(用于BrainFlow和OpenBCI)

Argparse :如何设置参数(用于BrainFlow和OpenBCI)
EN

Stack Overflow用户
提问于 2022-06-15 11:30:42
回答 1查看 89关注 0票数 0

大家好(或女孩)!

我最近买了一个eeg耳机,为了能够从python读取数据,我需要能够从狗狗那里接收信息。为此,我需要使用BrainFlow,这似乎是最适合的集中式多语言解决方案。但是,我不习惯使用Argparse,它的作用是接收参数(来自yml )?js文件?直接在代码中吗?)

总之,有人能告诉我如何提供参数来进行how解析吗?

顺便说一下,这是代码:

代码语言:javascript
复制
import argparse
import time

from brainflow.board_shim import BoardShim, BrainFlowInputParams


def main():
    BoardShim.enable_dev_board_logger()

    parser = argparse.ArgumentParser()
    # use docs to check which parameters are required for specific board, e.g. for Cyton - set serial port
    parser.add_argument('--timeout', type=int, help='timeout for device discovery or connection', required=False,
                        default=0)
    parser.add_argument('--ip-port', type=int, help='ip port', required=False, default=0)
    parser.add_argument('--ip-protocol', type=int, help='ip protocol, check IpProtocolType enum', required=False,
                        default=0)
    parser.add_argument('--ip-address', type=str, help='ip address', required=False, default='')
    parser.add_argument('--serial-port', type=str, help='serial port', required=False, default='')
    parser.add_argument('--mac-address', type=str, help='mac address', required=False, default='')
    parser.add_argument('--other-info', type=str, help='other info', required=False, default='')
    parser.add_argument('--streamer-params', type=str, help='streamer params', required=False, default='')
    parser.add_argument('--serial-number', type=str, help='serial number', required=False, default='0')
    parser.add_argument('--board-id', type=int, help='board id, check docs to get a list of supported boards',
                        required=True)
    parser.add_argument('--file', type=str, help='file', required=False, default='')
    args = parser.parse_args()

    params = BrainFlowInputParams()
    params.ip_port = args.ip_port
    params.serial_port = args.serial_port
    params.mac_address = args.mac_address
    params.other_info = args.other_info
    params.serial_number = args.serial_number
    params.ip_address = args.ip_address
    params.ip_protocol = args.ip_protocol
    params.timeout = args.timeout
    params.file = args.file

    board = BoardShim(args.board_id, params)
    board.prepare_session()
    # board.start_stream () # use this for default options
    board.start_stream(45000, args.streamer_params)
    time.sleep(10)
    # data = board.get_current_board_data (256) # get latest 256 packages or less, doesnt remove them from internal buffer
    data = board.get_board_data()  # get all data and remove it from internal buffer
    board.stop_stream()
    board.release_session()

    print(data)


if __name__ == "__main__":
    main()

每当我像这样运行cmd中的代码: python时,它就会说需要board-id参数。当我执行python test.py 0或python test.py "0“时也是如此。

,所以我的问题是:如何设置for解析的参数?

谢谢你:),最好的,KL

EN

回答 1

Stack Overflow用户

发布于 2022-11-23 19:47:54

我认为现在回答这个问题有点晚了,但是正如前面提到的,当您运行代码时,使用所需的参数从终端运行它:

e.p.python script.py --板-id 0--串口COM5

这将考虑您使用的是一个OpenBCI Cyton板,它的id为0,使用端口COM5。您可以从brainflow文档中检查您的设备有哪些。要知道您使用的是哪个端口,您的设备文档应该说明如何使用。我对OpenBCI很熟悉。一个简单的方法是从OpenBCI的GUI中知道您正在使用的端口。

如果使用相同的设置,则可以在默认参数中设置这些参数,因此不必在每次运行代码时指定它们。

parser.add_argument('--serial-port',type=str,help=‘串口’,required=False,default='COM5')

要测试代码,您可以使用一个具有id -1的合成板:

python script.py --板-id -1

(此处不需要指定串行端口)

希望这能有所帮助。

祝你好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72630556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档