<commit_before># JavaScript framework for the Emotiv EPOC [WIP]

This framework provides an interface to access data from the Emotiv EPOC brain sensor using Node.js.

To use this framework, you're gonna need an EPOC or EPOC+ that you can buy [here](https://emotiv.com/).

## Status:

* Working well with the EmoComposer but needs some changes to work with live data from the Emotiv.
* Known issues:
  * Cognitive Actions are not working at the moment when wearing the sensor.
  * Need to provide a way for users to provide the path to their own user data file when launching the program.

## How to Install

If you haven't already downloaded the SDK, clone or download [this repo](https://github.com/Emotiv/community-sdk) and copy the `edk.framework` to `/Library/Frameworks` (on Mac).

In your terminal, run:

```
  npm install epocjs
```


## How to Use

Example of simple program:

```
  var Epoc = require('epocjs')();

  Epoc.connect(function(event){
    if(event.smile > 0){
      console.log('smiling')
    }
  })
```

## Events

---

#### Smile

If the value is superior to 0, the headset is detecting that the user is smiling.

```
  if(event.smile > 0){
    // do something
  }
```

---

#### Looking Up / Down / Left / Right

The headset can detect the direction in which the user is looking:

```
  if(event.lookingUp > 0){
    // do something
  }

  if(event.lookingDown > 0){
    // do something
  }

  if(event.lookingLeft > 0){
    // do something
  }

  if(event.lookingRight > 0){
    // do something
  }
```

---

#### Blink

Detect if the user blinked:

```
  if(event.blink > 0){
    // do something
  }
```

---

#### Winking Left / Right

The headset can detect if the user is winking:

```
  if(event.winkingLeft > 0){
    // do something
  }

  if(event.winkingRight > 0){
    // do something
  }
```

---

#### Laugh

Detect if the user is laughing:

```
  if(event.laugh > 0){
    // do something
  }
```

---


#### Cognitive Actions (Only working with the EmoComposer at the moment)

Actions available:

- push
- pull
- lift
- drop
- left
- right
- rotate left
- rotate right
- rotate clockwise
- rotate counter clockwise
- rotate reverse
- disappear

```
  switch(cognitivAction){
    case 2:
      console.log('push')
      break;
    case 4:
      console.log('pull')
      break;
    case 8:
      console.log('lift')
      break;
    case 16:
      console.log('drop')
      break;
    case 32:
      console.log('left')
      break;
    case 64:
      console.log('right')
      break;
    case 128:
      console.log('rotate left')
      break;
    case 256:
      console.log('rotate right')
      break;
    case 512:
      console.log('rotate clockwise')
      break;
    case 1024:
      console.log('rotate counter clockwise')
      break;
    case 2048:
      console.log('rotate forwards')
      break;
    case 4096:
      console.log('rotate reverse')
    case 8192:
      console.log('disappear')
  }

```

---

## Next steps

* Add Gyroscope tracking.
* Get cognitive actions working.
* Add option for Insight device.

## Special Thanks

Thanks to [Cam Swords](https://github.com/camswords) for his help :)

## License

Licensed under the MIT license.
<commit_msg>udate README with current status<commit_after># JavaScript framework for the Emotiv EPOC [WIP]

This framework provides an interface to access data from the Emotiv EPOC brain sensor using Node.js.

To use this framework, you're gonna need an EPOC or EPOC+ that you can buy [here](https://emotiv.com/).

## Status:

* **Issues testing with EmoComposer – Currently refactoring to use the latest version of the SDK.**

* Known issues:
  * Cognitive Actions are not working at the moment when wearing the sensor.
  * Need to provide a way for users to provide the path to their own user data file when launching the program.

## How to Install

If you haven't already downloaded the SDK, clone or download [this repo](https://github.com/Emotiv/community-sdk) and copy the `edk.framework` to `/Library/Frameworks` (on Mac).

In your terminal, run:

```
  npm install epocjs
```


## How to Use

Example of simple program:

```
  var Epoc = require('epocjs')();

  Epoc.connect(function(event){
    if(event.smile > 0){
      console.log('smiling')
    }
  })
```

## Events

---

#### Smile

If the value is superior to 0, the headset is detecting that the user is smiling.

```
  if(event.smile > 0){
    // do something
  }
```

---

#### Looking Up / Down / Left / Right

The headset can detect the direction in which the user is looking:

```
  if(event.lookingUp > 0){
    // do something
  }

  if(event.lookingDown > 0){
    // do something
  }

  if(event.lookingLeft > 0){
    // do something
  }

  if(event.lookingRight > 0){
    // do something
  }
```

---

#### Blink

Detect if the user blinked:

```
  if(event.blink > 0){
    // do something
  }
```

---

#### Winking Left / Right

The headset can detect if the user is winking:

```
  if(event.winkingLeft > 0){
    // do something
  }

  if(event.winkingRight > 0){
    // do something
  }
```

---

#### Laugh

Detect if the user is laughing:

```
  if(event.laugh > 0){
    // do something
  }
```

---


#### Cognitive Actions (Only working with the EmoComposer at the moment)

Actions available:

- push
- pull
- lift
- drop
- left
- right
- rotate left
- rotate right
- rotate clockwise
- rotate counter clockwise
- rotate reverse
- disappear

```
  switch(cognitivAction){
    case 2:
      console.log('push')
      break;
    case 4:
      console.log('pull')
      break;
    case 8:
      console.log('lift')
      break;
    case 16:
      console.log('drop')
      break;
    case 32:
      console.log('left')
      break;
    case 64:
      console.log('right')
      break;
    case 128:
      console.log('rotate left')
      break;
    case 256:
      console.log('rotate right')
      break;
    case 512:
      console.log('rotate clockwise')
      break;
    case 1024:
      console.log('rotate counter clockwise')
      break;
    case 2048:
      console.log('rotate forwards')
      break;
    case 4096:
      console.log('rotate reverse')
    case 8192:
      console.log('disappear')
  }

```

---

## Next steps

* Add Gyroscope tracking.
* Get cognitive actions working.
* Add option for Insight device.

## Special Thanks

Thanks to [Cam Swords](https://github.com/camswords) for his help :)

## License

Licensed under the MIT license.

{'fraction_non_alphanumeric': 0.12401055408970976, 'fraction_numerical': 0.01396864814527394, 'mean_word_length': 2.568106312292359, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 23, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2903298', 'n_tokens_mistral': 2227, 'n_tokens_neox': 2031, 'n_words': 704}