11"""
22@Author Zach Wang
33@Date 2021.9.27
4- @Version 1.1.0
4+ @Version 1.2.1
55"""
66import json
77from telnetlib import Telnet
@@ -26,6 +26,9 @@ class PyNeuro:
2626 __blinkStrength = 0
2727 __status = "NotConnected"
2828
29+ __delta = 0
30+ __theta = 0
31+
2932 __attention_records = []
3033 __meditation_records = []
3134 __blinkStrength_records = []
@@ -36,6 +39,8 @@ class PyNeuro:
3639 __attention_callbacks = []
3740 __meditation_callbacks = []
3841 __blinkStrength__callbacks = []
42+ __delta__callbacks = []
43+ __theta__callbacks = []
3944 __status__callbacks = []
4045
4146 callBacksDictionary = {} # keep a track of all callbacks
@@ -79,7 +84,6 @@ def close(self):
7984 :return:
8085 """
8186 self .__threadRun = False
82- self .__parserThread .join ()
8387
8488 def __packetParser (self ):
8589 while True :
@@ -98,13 +102,18 @@ def __packetParser(self):
98102 else :
99103 if "eSense" in data .keys ():
100104 if data ["eSense" ]["attention" ] + data ["eSense" ]["meditation" ] == 0 :
101- self .__status = "fitting"
105+ if self .__status != "fitting" :
106+ self .__status = "fitting"
107+ print ("[PyNeuro] Fitting Device.." )
102108
103109 else :
104-
105- self .__status = "connected"
110+ if self .__status != "connected" :
111+ self .__status = "connected"
112+ print ("[PyNeuro] Successfully Connected .." )
106113 self .attention = data ["eSense" ]["attention" ]
107114 self .meditation = data ["eSense" ]["meditation" ]
115+ self .theta = data ['eegPower' ]['theta' ]
116+ self .delta = data ['eegPower' ]['delta' ]
108117 self .__attention_records .append (data ["eSense" ]["attention" ])
109118 self .__attention_records .append (data ["eSense" ]["meditation" ])
110119 elif "blinkStrength" in data .keys ():
@@ -137,6 +146,22 @@ def set_blinkStrength_callback(self, callback):
137146
138147 self .__blinkStrength__callbacks .append (callback )
139148
149+ def set_delta_callback (self , callback ):
150+ """
151+ Set callback function of meditation value
152+ :param callback: function(blinkStrength: int)
153+ """
154+
155+ self .__delta__callbacks .append (callback )
156+
157+ def set_theta_callback (self , callback ):
158+ """
159+ Set callback function of meditation value
160+ :param callback: function(blinkStrength: int)
161+ """
162+
163+ self .__theta__callbacks .append (callback )
164+
140165 # attention
141166 @property
142167 def attention (self ):
@@ -178,6 +203,38 @@ def blinkStrength(self, value):
178203 for callback in self .__blinkStrength__callbacks :
179204 callback (self .__blinkStrength )
180205
206+ @property
207+ def delta (self ):
208+ "Get value for delta"
209+ return self .__delta
210+
211+ @delta .setter
212+ def delta (self , value ):
213+ self .__delta = value
214+ # if callback has been set, execute the function
215+ for callback in self .__delta__callbacks :
216+ callback (self .__delta )
217+
218+ @property
219+ def theta (self ):
220+ "Get value for theta"
221+ return self .__theta
222+ @theta .setter
223+ def theta (self ,value ):
224+ self .__theta = value
225+ # if callback has been set, execute the function
226+ for callback in self .__theta__callbacks :
227+ callback (self .__theta )
228+
229+
230+ @delta .setter
231+ def delta (self , value ):
232+ self .__delta = value
233+ # if callback has been set, execute the function
234+ for callback in self .__delta__callbacks :
235+ callback (self .__delta )
236+
237+
181238 # status
182239 @property
183240 def status (self ):
@@ -189,4 +246,3 @@ def status(self, value):
189246 self .__status = value
190247 for callback in self .__status__callbacks :
191248 callback (self .__status )
192-
0 commit comments