修改的标签走队列模式
This commit is contained in:
@@ -331,7 +331,7 @@ class Decoder_main(threading.Thread):
|
|||||||
pad_eeg_test[:, :int(self.sample_length * self.device_info['sample_rate'])] = data
|
pad_eeg_test[:, :int(self.sample_length * self.device_info['sample_rate'])] = data
|
||||||
choosenNum, features_2 = self.decoder.predict(pad_eeg_test)
|
choosenNum, features_2 = self.decoder.predict(pad_eeg_test)
|
||||||
if isinstance(choosenNum, np.ndarray):
|
if isinstance(choosenNum, np.ndarray):
|
||||||
choosenNum = choosenNum[0]
|
choosenNum = choosenNum[0]-1
|
||||||
algo_log(f"结果:{choosenNum}, rho: {sorted(features_2[0])[-1] - sorted(features_2[0])[-2]}", level="DEBUG")
|
algo_log(f"结果:{choosenNum}, rho: {sorted(features_2[0])[-1] - sorted(features_2[0])[-2]}", level="DEBUG")
|
||||||
self.zmqServer.broadcast_message('result', int(choosenNum))
|
self.zmqServer.broadcast_message('result', int(choosenNum))
|
||||||
algo_log("SSMVEP发送给界面完成。", level="DEBUG")
|
algo_log("SSMVEP发送给界面完成。", level="DEBUG")
|
||||||
|
|||||||
@@ -355,7 +355,6 @@ class zmqServer(threading.Thread):
|
|||||||
|
|
||||||
# 写入范式缓冲区
|
# 写入范式缓冲区
|
||||||
with self.paradigmBufferLock:
|
with self.paradigmBufferLock:
|
||||||
self.paradigmBuffer.appendBuffer(data_np)
|
|
||||||
if self.interval_inited:
|
if self.interval_inited:
|
||||||
self.epoch_finished = self.detect_event(data_np)
|
self.epoch_finished = self.detect_event(data_np)
|
||||||
if self.pack_contain_event:
|
if self.pack_contain_event:
|
||||||
@@ -420,8 +419,7 @@ class zmqServer(threading.Thread):
|
|||||||
|
|
||||||
# -------------------------- 事件检测 --------------------------
|
# -------------------------- 事件检测 --------------------------
|
||||||
def detect_event(self, samples):
|
def detect_event(self, samples):
|
||||||
pack_contain_event = False
|
self.pack_contain_event = False
|
||||||
epoch_finished = False
|
|
||||||
# 第65通道为事件通道
|
# 第65通道为事件通道
|
||||||
events = np.array(samples[-2], dtype=np.int32).tolist()
|
events = np.array(samples[-2], dtype=np.int32).tolist()
|
||||||
for idx, event in enumerate(events):
|
for idx, event in enumerate(events):
|
||||||
@@ -433,20 +431,14 @@ class zmqServer(threading.Thread):
|
|||||||
-%H-%M-%S"),
|
-%H-%M-%S"),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
if len(self.count_events) > 0:
|
|
||||||
algo_log(f"当前有事件未采集完成,新事件{new_key}非法,被忽略")
|
|
||||||
return pack_contain_event, epoch_finished
|
|
||||||
else:
|
|
||||||
self.currentLabel = event
|
self.currentLabel = event
|
||||||
pack_contain_event = True
|
|
||||||
if event == self.predict_event:
|
if event == self.predict_event:
|
||||||
self.count_events[new_key] = self.latency + 1
|
self.count_events[new_key] = self.latency + 1
|
||||||
else:
|
else:
|
||||||
self.count_events[new_key] = self.train_latency + 1
|
self.count_events[new_key] = self.train_latency + 1
|
||||||
self.event_inner_idx = idx
|
self.event_inner_idx = idx
|
||||||
algo_log(f"事件检测到: {events},索引: {idx}", level="DEBUG")
|
algo_log(f"事件检测到: {events},索引: {idx}", level="DEBUG")
|
||||||
else:
|
self.pack_contain_event = True
|
||||||
pack_contain_event = False
|
|
||||||
|
|
||||||
# 倒计时并清理过期事件
|
# 倒计时并清理过期事件
|
||||||
drop_items = []
|
drop_items = []
|
||||||
@@ -459,11 +451,9 @@ class zmqServer(threading.Thread):
|
|||||||
for key in drop_items:
|
for key in drop_items:
|
||||||
del self.count_events[key]
|
del self.count_events[key]
|
||||||
|
|
||||||
if len(drop_items) > 0:
|
if drop_items:
|
||||||
epoch_finished = True
|
return True
|
||||||
else:
|
return False
|
||||||
epoch_finished = False
|
|
||||||
return pack_contain_event, epoch_finished
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------- 主循环 --------------------------
|
# -------------------------- 主循环 --------------------------
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ Decoder_Host = 127.0.0.1
|
|||||||
Decoder_Port = 8099
|
Decoder_Port = 8099
|
||||||
Serial_port = COM44
|
Serial_port = COM44
|
||||||
save_train_data = 0
|
save_train_data = 0
|
||||||
zmqServer_host = 127.0.0.1
|
zmqServer_host = 192.168.254.103
|
||||||
|
|
||||||
[algo_log]
|
[algo_log]
|
||||||
# ========== 文件日志配置 ==========
|
# ========== 文件日志配置 ==========
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ def main():
|
|||||||
if ext_label is not None:
|
if ext_label is not None:
|
||||||
# 将标签写入当前包所有5个采样点的第65通道 (index 64)
|
# 将标签写入当前包所有5个采样点的第65通道 (index 64)
|
||||||
# 覆盖全部采样点确保 event_inner_idx 无论落在哪个位置都能被正确检测
|
# 覆盖全部采样点确保 event_inner_idx 无论落在哪个位置都能被正确检测
|
||||||
packet[:, 64] = float(ext_label)
|
packet[:, 64][0] = float(ext_label)
|
||||||
ts = datetime.now().strftime('%H:%M:%S')
|
ts = datetime.now().strftime('%H:%M:%S')
|
||||||
print(f"[{ts}] 打标签: label={ext_label} -> ch64[all 5 samples] (global_sample_idx={global_sample_idx})")
|
print(f"[{ts}] 打标签: label={ext_label} -> ch64[all 5 samples] (global_sample_idx={global_sample_idx})")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user