大家好(或女孩)!
我最近买了一个eeg耳机,为了能够从python读取数据,我需要能够从狗狗那里接收信息。为此,我需要使用BrainFlow,这似乎是最适合的集中式多语言解决方案。但是,我不习惯使用Argparse,它的作用是接收参数(来自yml )?js文件?直接在代码中吗?)
总之,有人能告诉我如何提供参数来进行how解析吗?
顺便说一下,这是代码:
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
发布于 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
(此处不需要指定串行端口)
希望这能有所帮助。
祝你好运!
https://stackoverflow.com/questions/72630556
复制相似问题