1.0.1 • Published 4 years ago
ganglion-manger v1.0.1
GanglionManager
Raspbian Prerequisites
$ sudo apt-get install -y libbluetooth-dev libudev-dev
- node.js v8.0
- Python v2.7
Installation
$ npm install ganglion-manager --save
or
$ yarn add ganglion-manager
Example
패키지 Import
const { GanglionManager } = require('ganglion-manager')
Instance 생성
const { GanglionManager } = require('ganglion-manager') const myGanglionManager = GanglionManager.getInstance()
주변 Ganglion Board 정보 검색
const { GanglionManager } = require('ganglion-manager') const myGanglionManager = GanglionManager.getInstance() const main = async () => { console.log( await myGanglionManager.scan() ) // e.g., Set { 'Ganglion-2bfb' } <- 로컬 BT 장비 명 } main()
보드 연결
const { GanglionManager } = require('ganglion-manager') const myGanglionManager = GanglionManager.getInstance() const main = async () => { console.log( await myGanglionManager.scan() ) // e.g., Set { 'Ganglion-2bfb' } <- 로컬 BT 장비 명 await myGanglionManager.connect('Ganglion-2bfb') // <- 연결할 보드의 Local Name } main()
데이터 이벤트 리스너 등록
const { GanglionManager } = require('ganglion-manager') const myGanglionManager = GanglionManager.getInstance() const main = async () => { console.log( await myGanglionManager.scan() ) // e.g., Set { 'Ganglion-2bfb' } <- 로컬 BT 장비 명 await myGanglionManager.connect('Ganglion-2bfb') // <- 연결할 보드의 Local Name myGanglionManager.on( GanglionManager.ON_RAW_DATA_EVENT, (channel1, channel2) => { console.log( channel1, // 1번 채널 eeg 데이터 channel2 // 2번 채널 eeg 데이터 ) } ) myGanglionManager.on( GanglionManager.ON_BAND_DATA_EVENT, bandData => { console.log( bandData // 알파파, 베타파 등등 ) } ) } main()
node.js EventEmitter 사용법 참조
데이터 스트림 시작
const { GanglionManager } = require('ganglion-manager') const myGanglionManager = GanglionManager.getInstance() const main = async () => { console.log( await myGanglionManager.scan() ) // e.g., Set { 'Ganglion-2bfb' } <- 로컬 BT 장비 명 await myGanglionManager.connect('Ganglion-2bfb') // <- 연결할 보드의 Local Name myGanglionManager.on( GanglionManager.ON_RAW_DATA_EVENT, (channel1, channel2) => { console.log( channel1, // 1번 채널 eeg 데이터 channel2 // 2번 채널 eeg 데이터 ) } ) myGanglionManager.on( GanglionManager.ON_BAND_DATA_EVENT, bandData => { console.log( bandData // 알파파, 베타파 등등 ) } ) await myGanglionManager.startStream() } main()
데이터 스트림 종료 (예시, 10초 후 종료)
const { GanglionManager } = require('ganglion-manager') const myGanglionManager = GanglionManager.getInstance() const main = async () => { console.log( await myGanglionManager.scan() ) // e.g., Set { 'Ganglion-2bfb' } <- 로컬 BT 장비 명 await myGanglionManager.connect('Ganglion-2bfb') // <- 연결할 보드의 Local Name myGanglionManager.on( GanglionManager.ON_RAW_DATA_EVENT, (channel1, channel2) => { console.log( channel1, // 1번 채널 eeg 데이터 channel2 // 2번 채널 eeg 데이터 ) } ) myGanglionManager.on( GanglionManager.ON_BAND_DATA_EVENT, bandData => { console.log( bandData // 알파파, 베타파 등등 ) } ) await myGanglionManager.startStream() setTimeout(async () => { await myGanglionManager.stopStream() }, 10000) } main()
연결 해제 (예시, 10초 후 해제)
const { GanglionManager } = require('ganglion-manager') const myGanglionManager = GanglionManager.getInstance() const main = async () => { console.log( await myGanglionManager.scan() ) // e.g., Set { 'Ganglion-2bfb' } <- 로컬 BT 장비 명 await myGanglionManager.connect('Ganglion-2bfb') // <- 연결할 보드의 Local Name myGanglionManager.on( GanglionManager.ON_RAW_DATA_EVENT, (channel1, channel2) => { console.log( channel1, // 1번 채널 eeg 데이터 channel2 // 2번 채널 eeg 데이터 ) } ) myGanglionManager.on( GanglionManager.ON_BAND_DATA_EVENT, bandData => { console.log( bandData // 알파파, 베타파 등등 ) } ) await myGanglionManager.startStream() setTimeout(async () => { await myGanglionManager.disconnect() }, 10000) } main()
etc
다음의 속성 Getter 제공
get isScanning() : boolean { return this.mIsScanning } // myGanglionManager.isScanning get isStreaming() : boolean { return this.mIsStreaming } // myGanglionManager.isStreaming get isConnected() : boolean { return this.mIsConnected } // myGanglionManager.isConnected
1.0.1
4 years ago