static void Main(string[] args) { // use synthetic board for demo BoardShim.enable_dev_board_logger(); BrainFlowInputParams input_params = new BrainFlowInputParams(); int board_id = parse_args(args, input_params); BoardShim board_shim = new BoardShim(board_id, input_params); int sampling_rate = BoardShim.get_sampling_rate(board_shim.get_board_id()); int nfft = DataFilter.get_nearest_power_of_two(sampling_rate); int[] eeg_channels = BoardShim.get_eeg_channels(board_shim.get_board_id()); board_shim.prepare_session(); board_shim.start_stream(3600); System.Threading.Thread.Sleep(10000); board_shim.stop_stream(); double[,] data = board_shim.get_board_data(); board_shim.release_session(); Tuple <double[], double[]> bands = DataFilter.get_avg_band_powers(data, eeg_channels, sampling_rate, true); double[] feature_vector = bands.Item1.Concatenate(bands.Item2); BrainFlowModelParams model_params = new BrainFlowModelParams((int)BrainFlowMetrics.CONCENTRATION, (int)BrainFlowClassifiers.REGRESSION); MLModel concentration = new MLModel(model_params); concentration.prepare(); Console.WriteLine("Concentration: " + concentration.predict(feature_vector)); concentration.release(); }
// Start is called before the first frame update void Start() { try { BoardShim.enable_dev_board_logger(); BrainFlowInputParams input_params = new BrainFlowInputParams(); int board_id = (int)BoardIds.MINDROVE_BLUETOOTH_BOARD;//= parse_args(args, input_params); board_shim = new BoardShim(board_id, input_params); board_shim.prepare_session(); board_shim.start_stream(); // use this for default options //board_shim.start_stream(450000, "file://file_stream.csv:w"); BrainFlowModelParams concentration_params = new BrainFlowModelParams((int)BrainFlowMetrics.CONCENTRATION, (int)BrainFlowClassifiers.REGRESSION); concentration = new MLModel(concentration_params); concentration.prepare(); sampling_rate = 250;//BoardShim.get_sampling_rate(board_id); eeg_channels = BoardShim.get_eeg_channels(board_id); } catch (BrainFlowException ex) { Debug.Log(ex); } }
static int parse_args(string[] args, BrainFlowInputParams input_params, BrainFlowModelParams model_params) { int board_id = (int)BoardIds.SYNTHETIC_BOARD; //assume synthetic board by default // use docs to get params for your specific board, e.g. set serial_port for Cyton for (int i = 0; i < args.Length; i++) { if (args[i].Equals("--ip-address")) { input_params.ip_address = args[i + 1]; } if (args[i].Equals("--mac-address")) { input_params.mac_address = args[i + 1]; } if (args[i].Equals("--serial-port")) { input_params.serial_port = args[i + 1]; } if (args[i].Equals("--other-info")) { input_params.other_info = args[i + 1]; } if (args[i].Equals("--ip-port")) { input_params.ip_port = Convert.ToInt32(args[i + 1]); } if (args[i].Equals("--ip-protocol")) { input_params.ip_protocol = Convert.ToInt32(args[i + 1]); } if (args[i].Equals("--board-id")) { board_id = Convert.ToInt32(args[i + 1]); } if (args[i].Equals("--timeout")) { input_params.timeout = Convert.ToInt32(args[i + 1]); } if (args[i].Equals("--serial-number")) { input_params.serial_number = args[i + 1]; } if (args[i].Equals("--file")) { input_params.file = args[i + 1]; } if (args[i].Equals("--metric")) { model_params.metric = Convert.ToInt32(args[i + 1]); } if (args[i].Equals("--classifier")) { model_params.classifier = Convert.ToInt32(args[i + 1]); } } return(board_id); }
static void Main(string[] args) { try { BoardShim.enable_dev_board_logger(); BrainFlowInputParams input_params = new BrainFlowInputParams(); int board_id = (int)BoardIds.MINDROVE_WIFI_BOARD;//= parse_args(args, input_params); board_shim = new BoardShim(board_id, input_params); board_shim.prepare_session(); board_shim.start_stream(); // use this for default options //board_shim.start_stream(450000, "file://file_stream.csv:w"); board_shim.config_board(BoardShim.MindroveWifiConfigMode.EEG_MODE); BrainFlowModelParams concentration_params = new BrainFlowModelParams((int)BrainFlowMetrics.CONCENTRATION, (int)BrainFlowClassifiers.REGRESSION); concentration = new MLModel(concentration_params); concentration.prepare(); sampling_rate = BoardShim.get_sampling_rate(board_id); eeg_channels = BoardShim.get_eeg_channels(board_id); counter_idx = BoardShim.get_package_num_channel(board_id); } catch (BrainFlowException ex) { Console.WriteLine(ex); } while (Update() >= 0) { } if (board_shim != null) { try { board_shim.release_session(); concentration.release(); } catch (BrainFlowException e) { Console.WriteLine(e); } Console.WriteLine("Brainflow streaming was stopped"); } Console.ReadLine(); }