Changeset 348
- Timestamp:
- 03/28/12 17:31:44 (9 years ago)
- Location:
- trunk/project/PuzzleboxSynapseEmotiv/PuzzleboxSynapseEmotiv
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/project/PuzzleboxSynapseEmotiv/PuzzleboxSynapseEmotiv/hello.pyx
r347 r348 1 #include <string>2 1 3 2 cdef extern from "edk.h": 4 3 # int EE_EngineRemoteConnect(const char* szHost, unsigned short port) 5 int EE_EngineRemoteConnect(char* szHost, unsigned short port) 6 # int EE_EngineRemoteConnect(char* szHost, int port) 7 # int EE_EngineRemoteConnect() 4 ctypedef void* EmoEngineEventHandle 5 ctypedef void* EmoStateHandle 6 7 #ctypedef enum EE_Event_enum { 8 #EE_UnknownEvent = 0x0000, 9 #EE_EmulatorError = 0x0001, 10 #EE_ReservedEvent = 0x0002, 11 #EE_UserAdded = 0x0010, 12 #EE_UserRemoved = 0x0020, 13 #EE_EmoStateUpdated = 0x0040, 14 #EE_ProfileEvent = 0x0080, 15 #EE_CognitivEvent = 0x0100, 16 #EE_ExpressivEvent = 0x0200, 17 #EE_InternalStateChanged = 0x0400, 18 #EE_AllEvent = EE_UserAdded | EE_UserRemoved | EE_EmoStateUpdated | EE_ProfileEvent | EE_CognitivEvent | EE_ExpressivEvent | EE_InternalStateChanged 19 #} EE_Event_t; 20 21 cdef int EE_EngineRemoteConnect(char* szHost, unsigned short port) 22 cdef int EE_EngineGetNextEvent(EmoEngineEventHandle hEvent) 23 cdef EmoEngineEventHandle EE_EmoEngineEventCreate() 24 cdef EmoStateHandle EE_EmoStateCreate() 25 26 #cdef EE_Event_t EE_EmoEngineEventGetType(EmoEngineEventHandle hEvent) 27 cdef int EE_EmoEngineEventGetUserId(EmoEngineEventHandle hEvent, unsigned int *pUserIdOut) 28 #cdef EE_EmoStateUpdated 29 cdef int EE_EmoEngineEventGetEmoState(EmoEngineEventHandle hEvent, EmoStateHandle hEmoState) 30 31 cdef float ES_GetTimeFromStart(EmoStateHandle state) 32 cdef int ES_GetWirelessSignalStatus(EmoStateHandle state) 33 cdef int ES_GetHeadsetOn(EmoStateHandle state) 34 35 cdef float ES_AffectivGetExcitementShortTermScore(EmoStateHandle state) 36 cdef float ES_AffectivGetExcitementLongTermScore(EmoStateHandle state) 37 cdef float ES_AffectivGetMeditationScore(EmoStateHandle state) 38 cdef float ES_AffectivGetFrustrationScore(EmoStateHandle state) 39 cdef float ES_AffectivGetEngagementBoredomScore(EmoStateHandle state) 40 41 42 #cdef eEvent = EE_EmoEngineEventCreate() 43 #cdef eState = EE_EmoStateCreate() 8 44 9 45 def say_hello_to(name): 10 46 print("Hello, %s" % name) 11 47 12 #def emotiv(): 13 #handle = EE_EngineRemoteConnect("127.0.0.1", 1726) 48 HOST = "127.0.0.1" 49 PORT = 1726 50 51 #def emotiv_connect(host, port): 52 def emotiv_connect(): 53 handle = EE_EngineRemoteConnect(HOST, PORT) 14 54 #print type(handle) 15 55 #print handle 56 57 eEvent = EE_EmoEngineEventCreate() 58 eState = EE_EmoStateCreate() 59 60 61 while True: 62 result = EE_EngineGetNextEvent(eEvent) 63 64 #processEmotivState(eEvent, eState) 65 #processEmotivState() 66 67 68 #def processEmotivState(): 69 70 result = EE_EmoEngineEventGetEmoState(eEvent, eState) 71 72 # Headset Status 73 time_from_start = ES_GetTimeFromStart(eState) 74 wireless_signal_status = (ES_GetWirelessSignalStatus(eState)) 75 headset_on = (ES_GetHeadsetOn(eState)) 76 77 # Affectiv Suite results 78 excitement = ES_AffectivGetExcitementShortTermScore(eState) 79 excitement_long_term = ES_AffectivGetExcitementLongTermScore(eState) 80 meditation = ES_AffectivGetMeditationScore(eState) 81 frustration = ES_AffectivGetFrustrationScore(eState) 82 engagement_boredom = ES_AffectivGetEngagementBoredomScore(eState) 83 84 packet = {} 85 86 packet['emotiv_status'] = {} 87 packet['emotiv_status']['time_from_start'] = time_from_start 88 packet['emotiv_status']['headset_on'] = headset_on 89 #packet['emotiv_status']['contact_number_of_quality_channels'] = contact_number_of_quality_channels 90 #packet['emotiv_status']['contact_quality_from_all_channels'] = contact_quality_from_all_channels 91 packet['emotiv_status']['wireless'] = wireless_signal_status 92 #packet['emotiv_status']['battery'] = battery 93 94 95 packet['affectiv'] = {} 96 #print dir(excitement) 97 packet['affectiv']['excitement'] = excitement 98 packet['affectiv']['long_term_excitement'] = excitement_long_term 99 packet['affectiv']['meditation'] = meditation 100 packet['affectiv']['frustration'] = frustration 101 packet['affectiv']['engagement_boredom'] = engagement_boredom 102 103 104 105 print 106 print 107 print "INFO [Emotiv]: Packet Received:" 108 for group in packet.keys(): 109 for key in packet[group].keys(): 110 print '[%s][%s]:' % (group, key), 111 #if type(packet[group][key]): 112 #print '%f' % packet[group][key] 113 #else: 114 print packet[group][key] 115 116 117 118 119 #EmoEngineEventHandle eEvent = EE_EmoEngineEventCreate(); 120 #EmoStateHandle eState = EE_EmoStateCreate(); 121 #unsigned int userID = 0; 122 123 #int state = EE_EngineGetNextEvent(eEvent); 124 125 #// New event needs to be handled 126 #if (state == EDK_OK) { 127 128 #EE_Event_t eventType = EE_EmoEngineEventGetType(eEvent); 129 #EE_EmoEngineEventGetUserId(eEvent, &userID); 130 131 #// Log the EmoState if it has been updated 132 #if (eventType == EE_EmoStateUpdated) { 133 134 #EE_EmoEngineEventGetEmoState(eEvent, eState); 135 136 #// Headset Status 137 #float time_from_start = ES_GetTimeFromStart(eState); 138 #int wireless_signal_status = static_cast<int>(ES_GetWirelessSignalStatus(eState)); 139 #int headset_on = static_cast<int>(ES_GetHeadsetOn(eState)); 140 141 #// Affectiv Suite results 142 #float excitement = ES_AffectivGetExcitementShortTermScore(eState); 143 #float excitement_long_term = ES_AffectivGetExcitementLongTermScore(eState); 144 #float meditation = ES_AffectivGetMeditationScore(eState); 145 #float frustration = ES_AffectivGetFrustrationScore(eState); 146 #float engagement_boredom = ES_AffectivGetEngagementBoredomScore(eState); 147 148 149 150 151 #self.EmotivEngine = PyEpoc.PyEpoc.EpocHandler() 152 #self.engineeventhandle = self.EmotivEngine.EE_EmoEngineEventCreate() 153 #self.statehandle = self.EmotivEngine.EE_EmoStateCreate() 154 #self.EmotivEngine.ES_Init(self.statehandle) 155 156 157 #state = self.EmotivEngine.EE_EngineGetNextEvent(self.engineeventhandle) 158 159 #self.processEmotivState(state) 160 161 #if (state == PyEpoc.PyEpoc.ERRCODE['EDK_OK']): 162 163 #event = self.EmotivEngine.EE_EmoEngineEventGetType(self.engineeventhandle) 164 #user = self.EmotivEngine.EE_EmoEngineEventGetUserId(self.engineeventhandle)[1] 165 166 #if (event == PyEpoc.PyEpoc.EVENT['EE_EmoStateUpdated']): 167 168 #self.EmotivEngine.EE_EmoEngineEventGetEmoState(self.engineeventhandle, self.statehandle) 169 170 ## Emotiv Status 171 #time_from_start = self.EmotivEngine.ES_GetTimeFromStart(self.statehandle) 172 #headset_on = self.EmotivEngine.ES_GetHeadsetOn(self.statehandle) 173 #contact_number_of_quality_channels = self.EmotivEngine.ES_GetNumContactQualityChannels(self.statehandle) -
trunk/project/PuzzleboxSynapseEmotiv/PuzzleboxSynapseEmotiv/setup.py
r347 r348 5 5 ext_modules = [Extension("hello", \ 6 6 ["hello.pyx"], \ 7 language='c++')] 7 language='c++', \ 8 libraries=['..\lib\edk'], \ 9 )] 8 10 9 11 setup(
Note: See TracChangeset
for help on using the changeset viewer.