11"""
22@Author Zach Wang
33@Date 2021.9.27
4- @Version 1.0 .0
4+ @Version 1.1 .0
55"""
66import json
77from telnetlib import Telnet
@@ -24,7 +24,7 @@ class PyNeuro:
2424 __attention = 0
2525 __meditation = 0
2626 __blinkStrength = 0
27- __status = "Scanning "
27+ __status = "NotConnected "
2828
2929 __attention_records = []
3030 __meditation_records = []
@@ -36,6 +36,7 @@ class PyNeuro:
3636 __attention_callbacks = []
3737 __meditation_callbacks = []
3838 __blinkStrength__callbacks = []
39+ __status__callbacks = []
3940
4041 callBacksDictionary = {} # keep a track of all callbacks
4142
@@ -88,16 +89,19 @@ def __packetParser(self):
8889 raw_str = (str (line ).rstrip ("\\ r'" ).lstrip ("b'" ))
8990 data = json .loads (raw_str )
9091 if "status" in data .keys ():
91- self .__status = data ["status" ]
92- if data ["status" ] == "scanning" :
93- print ("[PyNeuro] Scanning device.." )
94- else :
95- print ("[PyNeuro] Connection lost, trying to reconnect.." )
92+ if self .__status != data ["status" ]:
93+ self .__status = data ["status" ]
94+ if data ["status" ] == "scanning" :
95+ print ("[PyNeuro] Scanning device.." )
96+ else :
97+ print ("[PyNeuro] Connection lost, trying to reconnect.." )
9698 else :
9799 if "eSense" in data .keys ():
98100 if data ["eSense" ]["attention" ] + data ["eSense" ]["meditation" ] == 0 :
99101 self .__status = "fitting"
102+
100103 else :
104+
101105 self .__status = "connected"
102106 self .attention = data ["eSense" ]["attention" ]
103107 self .meditation = data ["eSense" ]["meditation" ]
@@ -131,7 +135,7 @@ def set_blinkStrength_callback(self, callback):
131135 :param callback: function(blinkStrength: int)
132136 """
133137
134- self .__blinkStrength_callbacks .append (callback )
138+ self .__blinkStrength__callbacks .append (callback )
135139
136140 # attention
137141 @property
@@ -171,6 +175,18 @@ def blinkStrength(self):
171175 def blinkStrength (self , value ):
172176 self .__blinkStrength = value
173177 # if callback has been set, execute the function
174- if len (self .__blinkStrength__callbacks ) != 0 :
175- for callback in self .__blinkStrength__callbacks :
176- callback (self .__blinkStrengthn )
178+ for callback in self .__blinkStrength__callbacks :
179+ callback (self .__blinkStrength )
180+
181+ # status
182+ @property
183+ def status (self ):
184+ "Get status"
185+ return self .__status
186+
187+ @status .setter
188+ def status (self , value ):
189+ self .__status = value
190+ for callback in self .__status__callbacks :
191+ callback (self .__status )
192+
0 commit comments