Driver SDK  1.6
bbt_driver.h
Go to the documentation of this file.
1 #ifndef BBT_DRIVER_H
2 #define BBT_DRIVER_H
3 
247 #ifdef WIN32
248 #ifdef BBT_SDK_STATIC_DEFINE
249 # define BBT_SDK_API
250 # define BBT_SDK_NO_EXPORT
251 #else
252 # ifndef BBT_SDK_API
253 # ifdef BBT_SDK_EXPORTS
254  /* We are building this library */
255 # define BBT_SDK_API __declspec(dllexport)
256 # else
257  /* We are using this library */
258 # define BBT_SDK_API __declspec(dllimport)
259 # endif
260 # endif
261 
262 # ifndef BBT_SDK_NO_EXPORT
263 # define BBT_SDK_NO_EXPORT
264 # endif
265 #endif
266 #else
267 # define BBT_SDK_API
268 #endif
269 
270 #ifndef BBT_SDK_DEPRECATED
271 # define BBT_SDK_DEPRECATED __declspec(deprecated)
272 #endif
273 
274 #ifndef BBT_SDK_DEPRECATED_EXPORT
275 # define BBT_SDK_DEPRECATED_EXPORT BBT_SDK_API BBT_SDK_DEPRECATED
276 #endif
277 
278 #ifndef BBT_SDK_DEPRECATED_NO_EXPORT
279 # define BBT_SDK_DEPRECATED_NO_EXPORT BBT_SDK_NO_EXPORT BBT_SDK_DEPRECATED
280 #endif
281 
282 #if 0 /* DEFINE_NO_DEPRECATED */
283 # ifndef BBT_SDK_NO_DEPRECATED
284 # define BBT_SDK_NO_DEPRECATED
285 # endif
286 #endif
287 
288 #ifdef __cplusplus
289 extern "C" {
290 #endif
291 
320 /******************************************************************************
321  ** SIGNAL
322  ******************************************************************************/
333 typedef struct bbt_signal_s bbt_signal_t;
334 
347 BBT_SDK_API char* bbt_signal_get_type(const bbt_signal_t* signal,
348  char* output_buffer,
349  unsigned int max_len);
350 
361 BBT_SDK_API unsigned int bbt_signal_get_channels(const bbt_signal_t* signal);
362 
373 BBT_SDK_API unsigned int bbt_signal_get_samples(const bbt_signal_t* signal);
374 
392 BBT_SDK_API int bbt_signal_get_mode(const bbt_signal_t* signal);
393 
415 BBT_SDK_API int bbt_signal_set_mode(const bbt_signal_t *signal, int mode);
416 
417 
418 /******************************************************************************
419  ** DRIVER
420  ******************************************************************************/
421 
432 BBT_SDK_API typedef struct bbt_driver_s bbt_driver_t;
433 
434 
455 BBT_SDK_API extern const int bbt_dry_eeg_sensor;
456 
463 BBT_SDK_API extern const int bbt_water_eeg_sensor;
464 
480 BBT_SDK_API bbt_driver_t* bbt_driver_new_bluetooth(const char* device_name, int eeg_sensor_type);
481 
497 BBT_SDK_API bbt_driver_t* bbt_driver_new_usb(int port, int eeg_sensor_type);
498 
514 BBT_SDK_API bbt_driver_t* bbt_driver_new_eeg64(const char* left_device_name, const char* right_device_name);
515 
528 BBT_SDK_API void bbt_driver_free(bbt_driver_t* driver);
529 
530 
549 BBT_SDK_API void bbt_driver_connect(bbt_driver_t *driver);
550 
559 BBT_SDK_API void bbt_driver_disconnect(bbt_driver_t* driver);
560 
576 BBT_SDK_API void bbt_driver_reconnect(bbt_driver_t* driver);
577 
588 BBT_SDK_API int bbt_driver_is_connected(const bbt_driver_t* driver);
589 
590 
613 BBT_SDK_API int bbt_driver_get_hw_version(const bbt_driver_t* driver,
614  unsigned short* major,
615  unsigned short* minor);
616 
629 BBT_SDK_API int bbt_driver_get_fw_version(const bbt_driver_t* driver, unsigned short* major, unsigned short* minor);
630 
642 BBT_SDK_API unsigned short bbt_driver_get_frequency(const bbt_driver_t* driver);
643 
644 
665 BBT_SDK_API unsigned short bbt_driver_get_number_of_signals(const bbt_driver_t* driver);
666 
679 BBT_SDK_API bbt_signal_t *bbt_driver_get_signal(const bbt_driver_t* driver, unsigned short index);
680 
693  const bbt_driver_t* driver);
694 
706 BBT_SDK_API int bbt_driver_is_sd_card_enabled(const bbt_driver_t* driver);
707 
728 BBT_SDK_API int bbt_driver_enable_sd_card(bbt_driver_t* driver, int enable);
729 
744 BBT_SDK_API char* bbt_driver_get_folder(const bbt_driver_t* driver, char* output_buffer, unsigned int max_len);
745 
759 BBT_SDK_API int bbt_driver_set_folder(bbt_driver_t* driver, const char* folder);
760 
775 BBT_SDK_API char* bbt_driver_get_file(const bbt_driver_t* driver, char* output_buffer, unsigned int max_len);
776 
790 BBT_SDK_API int bbt_driver_set_file(bbt_driver_t* driver, const char* file);
791 
792 
821 BBT_SDK_API int bbt_driver_synchronize(const bbt_driver_t *driver, unsigned long *rtt, long *offset);
822 
823 
846 BBT_SDK_API int bbt_driver_start(bbt_driver_t* driver);
847 
860 BBT_SDK_API int bbt_driver_stop(bbt_driver_t* driver);
861 
872 BBT_SDK_API int bbt_driver_is_running(const bbt_driver_t* driver);
873 
894 BBT_SDK_API extern const short bbt_driver_battery_unknown;
895 
902 BBT_SDK_API extern const short bbt_driver_battery_charging;
903 
904 
905 
920 BBT_SDK_API unsigned long bbt_driver_read_data_size(const bbt_driver_t* driver);
921 
928 BBT_SDK_API extern const unsigned short bbt_driver_flags_ok;
929 
938 BBT_SDK_API extern const unsigned short bbt_driver_flags_sd_card_removed;
939 
949 BBT_SDK_API extern const unsigned short bbt_driver_flags_sd_card_access_error;
950 
960 BBT_SDK_API extern const unsigned short bbt_driver_flags_sd_card_folder_error;
961 
971 BBT_SDK_API extern const unsigned short bbt_driver_flags_sd_card_time_error;
972 
981 BBT_SDK_API extern const unsigned short bbt_driver_flags_sd_card_file_error;
982 
991 BBT_SDK_API extern const unsigned short bbt_driver_flags_sd_card_full_error;
992 
993 
1001 BBT_SDK_API extern const unsigned short bbt_driver_flags_eeg64_not_synchronized;
1002 
1003 
1010 BBT_SDK_API extern const unsigned short bbt_driver_flags_bad_anchor_configuration;
1011 
1012 
1063 BBT_SDK_API double* bbt_driver_read(bbt_driver_t* driver,
1064  unsigned short* sequence,
1065  short *battery,
1066  unsigned short* flags);
1067 
1072 BBT_SDK_API extern const unsigned short bbt_driver_impedance_unknown;
1077 BBT_SDK_API extern const unsigned short bbt_driver_impedance_saturated;
1082 BBT_SDK_API extern const unsigned short bbt_driver_impedance_bad;
1087 BBT_SDK_API extern const unsigned short bbt_driver_impedance_fair;
1092 BBT_SDK_API extern const unsigned short bbt_driver_impedance_good;
1093 
1094 
1102 BBT_SDK_API unsigned short bbt_driver_get_eeg_impedance(const bbt_driver_t* driver,
1103  unsigned short index);
1104 
1124 BBT_SDK_API int bbt_driver_import_sd_record(const char* input_folder, const char* input_file, const char* output_folder);
1125 
1142 BBT_SDK_API int bbt_driver_import_eeg64_sd_record(const char* left_input_folder, const char* right_input_folder, const char* input_file, const char* output_folder);
1143 
1144 #ifdef __cplusplus
1145 }
1146 #endif
1147 
1148 #endif // BBT_DRIVER_H
BBT_SDK_API const short bbt_driver_battery_unknown
unknown battery level
BBT_SDK_API const short bbt_driver_battery_charging
battery charging
BBT_SDK_API int bbt_driver_enable_sd_card(bbt_driver_t *driver, int enable)
Enables or disables the SD card recording.
BBT_SDK_API unsigned short bbt_driver_get_number_of_signals(const bbt_driver_t *driver)
Gets the number of signals available in the device.
BBT_SDK_API char * bbt_driver_get_file(const bbt_driver_t *driver, char *output_buffer, unsigned int max_len)
Gets the name of the file in the SD card where the data is going to be recorded.
BBT_SDK_API char * bbt_driver_get_folder(const bbt_driver_t *driver, char *output_buffer, unsigned int max_len)
Gets the name of the folder in the SD card where the data is going to be recorded.
BBT_SDK_API int bbt_driver_set_folder(bbt_driver_t *driver, const char *folder)
Sets the name of the folder in the SD card where the data is going to be recorded.
BBT_SDK_API int bbt_driver_is_sd_card_enabled(const bbt_driver_t *driver)
Checks if the SD card record is enabled.
BBT_SDK_API bbt_signal_t * bbt_driver_get_signal(const bbt_driver_t *driver, unsigned short index)
Gets a handler to the signal with the corresponding index that can be later used with functions in Si...
BBT_SDK_API int bbt_driver_set_file(bbt_driver_t *driver, const char *file)
Sets the name of the file in the SD card where the data is going to be recorded.
BBT_SDK_API int bbt_driver_has_sd_card_capability(const bbt_driver_t *driver)
Checks if the device can record the data in a SD card.
BBT_SDK_API void bbt_driver_connect(bbt_driver_t *driver)
Connects with the device associated to the driver.
BBT_SDK_API int bbt_driver_is_connected(const bbt_driver_t *driver)
Checks if the driver is connected to the device.
BBT_SDK_API void bbt_driver_disconnect(bbt_driver_t *driver)
Disconnects from the device associated.
BBT_SDK_API void bbt_driver_reconnect(bbt_driver_t *driver)
Reconnects to the device associated.
BBT_SDK_API bbt_driver_t * bbt_driver_new_eeg64(const char *left_device_name, const char *right_device_name)
Creates a driver for a eeg64 device with wet sensors. It must be released using bbt_driver_free()
BBT_SDK_API bbt_driver_t * bbt_driver_new_usb(int port, int eeg_sensor_type)
Creates a driver for a usb device. It must be released using bbt_driver_free()
BBT_SDK_API void bbt_driver_free(bbt_driver_t *driver)
Releases the memory of the driver created by bbt_driver_new_*()
BBT_SDK_API bbt_driver_t * bbt_driver_new_bluetooth(const char *device_name, int eeg_sensor_type)
Creates a driver for a bluetooth device. It must be released using bbt_driver_free()
BBT_SDK_API int bbt_driver_get_hw_version(const bbt_driver_t *driver, unsigned short *major, unsigned short *minor)
Gets the hardware version of the device.
BBT_SDK_API int bbt_driver_get_fw_version(const bbt_driver_t *driver, unsigned short *major, unsigned short *minor)
Gets the major and minor firmware version of the device.
BBT_SDK_API unsigned short bbt_driver_get_frequency(const bbt_driver_t *driver)
Gets the number of data messages sent by the device each second.
BBT_SDK_API const unsigned short bbt_driver_impedance_fair
bbt_driver_impedance_fair
BBT_SDK_API unsigned long bbt_driver_read_data_size(const bbt_driver_t *driver)
Gets the size of the data vector read on each block depending on the configuration of the driver.
BBT_SDK_API int bbt_driver_start(bbt_driver_t *driver)
Stars a new recording.
BBT_SDK_API const unsigned short bbt_driver_impedance_bad
bbt_driver_impedance_bad
BBT_SDK_API double * bbt_driver_read(bbt_driver_t *driver, unsigned short *sequence, short *battery, unsigned short *flags)
Reads one data message from the device.
BBT_SDK_API unsigned short bbt_driver_get_eeg_impedance(const bbt_driver_t *driver, unsigned short index)
Reads the impedance value for the index channel of the EEG signal (if any)
BBT_SDK_API const unsigned short bbt_driver_impedance_good
bbt_driver_impedance_good
BBT_SDK_API int bbt_driver_is_running(const bbt_driver_t *driver)
Checks if the recording is active.
BBT_SDK_API const unsigned short bbt_driver_impedance_unknown
bbt_driver_impedance_unknown
BBT_SDK_API int bbt_driver_stop(bbt_driver_t *driver)
Stops the current recording.
BBT_SDK_API const unsigned short bbt_driver_impedance_saturated
bbt_driver_impedance_saturated
BBT_SDK_API int bbt_driver_synchronize(const bbt_driver_t *driver, unsigned long *rtt, long *offset)
Computes the rtt and clock offset between the computer and the device.
typedefBBT_SDK_API struct bbt_driver_s bbt_driver_t
Opaque data type that represents the driver for a BBT device.
Definition: bbt_driver.h:432
BBT_SDK_API const int bbt_dry_eeg_sensor
dry eeg sensor
BBT_SDK_API const int bbt_water_eeg_sensor
water based eeg sensor
BBT_SDK_API int bbt_driver_import_eeg64_sd_record(const char *left_input_folder, const char *right_input_folder, const char *input_file, const char *output_folder)
Imports the eeg 64 recordings from the sd card into readable csv files.
BBT_SDK_API int bbt_driver_import_sd_record(const char *input_folder, const char *input_file, const char *output_folder)
Imports the recordings from the sd card into readable csv files.
BBT_SDK_API const unsigned short bbt_driver_flags_sd_card_access_error
SD card cannot be accessed.
BBT_SDK_API const unsigned short bbt_driver_flags_eeg64_not_synchronized
EEG64 device not synchronized.
BBT_SDK_API const unsigned short bbt_driver_flags_sd_card_full_error
SD card full error.
BBT_SDK_API const unsigned short bbt_driver_flags_bad_anchor_configuration
Bad anchor configuration.
BBT_SDK_API const unsigned short bbt_driver_flags_sd_card_file_error
SD card file error.
BBT_SDK_API const unsigned short bbt_driver_flags_sd_card_removed
SD card was removed.
BBT_SDK_API const unsigned short bbt_driver_flags_sd_card_folder_error
SD card folder error.
BBT_SDK_API const unsigned short bbt_driver_flags_sd_card_time_error
SD card creation time error.
BBT_SDK_API const unsigned short bbt_driver_flags_ok
data recording is ok
BBT_SDK_API int bbt_signal_set_mode(const bbt_signal_t *signal, int mode)
Sets the working mode of the signal.
BBT_SDK_API unsigned int bbt_signal_get_channels(const bbt_signal_t *signal)
Gets the number of channels that compose the signal.
struct bbt_signal_s bbt_signal_t
Opaque type to handle signals from Bitbrain devices.
Definition: bbt_driver.h:333
BBT_SDK_API char * bbt_signal_get_type(const bbt_signal_t *signal, char *output_buffer, unsigned int max_len)
Gets the type of the signal.
BBT_SDK_API unsigned int bbt_signal_get_samples(const bbt_signal_t *signal)
Gets the number of measurements gathered in every message.
BBT_SDK_API int bbt_signal_get_mode(const bbt_signal_t *signal)
Gets the current working mode of the signal.