File size: 1,021 Bytes
239d4ec
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import time
import threading
from ...logger import logger
from ..kernel_interface.procfs_bridge import send_to_kernel, read_from_kernel
from ..senses.sigint_processor import SIGINTProcessor

class HeartbeatLoop(threading.Thread):
    def __init__(self, brain, interval: float = 1.0):
        super().__init__(daemon=True)
        self.brain = brain
        self.interval = interval
        self._stop_event = threading.Event()

    def run(self):
        senses = SIGINTProcessor()
        logger.info(f"Heartbeat loop started (interval={self.interval}s)")
        
        while not self._stop_event.is_set():
            status = read_from_kernel()
            raw_signal = senses.listen_to_traffic()
            action = "ACTION: MONITORING" if "SIGNAL_DETECTED" in raw_signal else "ACTION: IDLE"
            
            state_report = f"SYS: {status} | SENSE: {raw_signal} | {action}"
            send_to_kernel(state_report)
            time.sleep(self.interval)

    def stop(self):
        self._stop_event.set()