Skip to content

Commit 004b421

Browse files
authored
Merge branch 'main' into update-settings-bar
2 parents b0eb7e0 + df20442 commit 004b421

File tree

6 files changed

+36
-40
lines changed

6 files changed

+36
-40
lines changed

backend/shared-logic/src/lsl.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ pub struct ProcessingConfig {
2828
impl Default for ProcessingConfig {
2929
fn default() -> Self {
3030
Self {
31-
apply_bandpass: true,
31+
apply_bandpass: false,
3232
use_iir: false,
3333
l_freq: Some(1.0),
3434
h_freq: Some(50.0),

frontend/components/nodes/signal-graph-node/signal-graph-full.tsx

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,26 @@ import { Button } from '@/components/ui/button';
1414

1515

1616
interface SignalGraphViewProps {
17-
data: {
18-
time: string;
19-
signal1: number;
20-
signal2: number;
21-
signal3: number;
22-
signal4: number;
23-
signal5: number;
24-
}[];
17+
data: {
18+
time: string;
19+
signal1: number;
20+
signal2: number;
21+
signal3: number;
22+
signal4: number;
23+
}[];
2524
}
2625

2726

2827
export default function SignalGraphView({ data }: SignalGraphViewProps) {
2928
const { dataStreaming, setDataStreaming } = useGlobalContext();
3029
const [selectedSignal, setSelectedSignal] = useState<string | null>(null);
3130

32-
33-
const signals = [
34-
{ key: 'signal1', colour: '#0000ff', name: 'Signal 1' },
35-
{ key: 'signal2', colour: '#00ff00', name: 'Signal 2' },
36-
{ key: 'signal3', colour: '#FF00D0', name: 'Signal 3' },
37-
{ key: 'signal4', colour: '#FFFF00', name: 'Signal 4' },
38-
{ key: 'signal5', colour: '#ff0000', name: 'Signal 5' },
39-
];
40-
31+
const signals = [
32+
{key: 'signal1', colour: '#0000ff', name: 'Signal 1'},
33+
{key: 'signal2', colour: '#00ff00', name: 'Signal 2'},
34+
{key: 'signal3', colour: '#FF00D0', name: 'Signal 3'},
35+
{key: 'signal4', colour: '#FFFF00', name: 'Signal 4'},
36+
];
4137

4238
const handleStartStop = () => {
4339
setDataStreaming(!dataStreaming);

frontend/components/nodes/signal-graph-node/signal-graph-node.tsx

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,7 @@ import SignalGraphView from './signal-graph-full';
1818
export default function SignalGraphNode({ id }: { id?: string }) {
1919
const { renderData } = useWebsocket(20, 10);
2020

21-
const processedData = renderData.map((item) => ({
22-
time: item.time,
23-
signal1: item.signals[0],
24-
signal2: item.signals[1],
25-
signal3: item.signals[2],
26-
signal4: item.signals[3],
27-
signal5: item.signals[4],
28-
}));
29-
21+
const processedData = renderData;
3022
const reactFlowInstance = useReactFlow();
3123
const [isConnected, setIsConnected] = React.useState(false);
3224
const { dataStreaming } = useGlobalContext()

frontend/components/ui-data-table/data-table.tsx

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ interface SignalData {
1414
signal2: number;
1515
signal3: number;
1616
signal4: number;
17-
signal5: number;
1817
}
1918

2019
interface DataTableProps {
@@ -33,7 +32,6 @@ const DataTable: React.FC<DataTableProps> = ({ rowCount = 8, data = [] }) => {
3332
signal2: 0,
3433
signal3: 0,
3534
signal4: 0,
36-
signal5: 0,
3735
}
3836
);
3937
});
@@ -58,9 +56,6 @@ const DataTable: React.FC<DataTableProps> = ({ rowCount = 8, data = [] }) => {
5856
<TableHead className="text-center font-medium text-[#0D585F]">
5957
Signal 4
6058
</TableHead>
61-
<TableHead className="text-center font-medium text-[#0D585F]">
62-
Signal 5
63-
</TableHead>
6459
</TableRow>
6560
</TableHeader>
6661
<TableBody>
@@ -86,9 +81,6 @@ const DataTable: React.FC<DataTableProps> = ({ rowCount = 8, data = [] }) => {
8681
<TableCell className="text-center text-[#0D585F]">
8782
{row.signal4}
8883
</TableCell>
89-
<TableCell className="text-center text-[#0D585F]">
90-
{row.signal5}
91-
</TableCell>
9284
</TableRow>
9385
))}
9486
</TableBody>

frontend/hooks/useWebsocket.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,15 @@ export default function useWebsocket(
2424
console.log('Sent processing config:', config)
2525
}
2626
}
27+
const normalizeBatch = (batch: any) => {
28+
return batch.timestamps.map((time: number, i: number) => ({
29+
time,
30+
signal1: batch.signals[0][i],
31+
signal2: batch.signals[1][i],
32+
signal3: batch.signals[2][i],
33+
signal4: batch.signals[3][i],
34+
}));
35+
};
2736

2837
useEffect(() => {
2938
console.log('data streaming:', dataStreaming);
@@ -76,7 +85,8 @@ export default function useWebsocket(
7685
} else {
7786
try {
7887
const parsedData = JSON.parse(message);
79-
bufferRef.current.push(parsedData);
88+
const normalizedPoints = normalizeBatch(parsedData);
89+
bufferRef.current.push(...normalizedPoints);
8090
} catch (e) {
8191
console.error("Failed to parse non-confirmation message as JSON:", e, message);
8292
}

frontend/server.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
const { time } = require('console');
12
const WebSocket = require('ws');
23

34
const wss = new WebSocket.Server({ port: 8080 });
@@ -6,11 +7,16 @@ wss.on('connection', (ws) => {
67
console.log('New client connected');
78

89
const interval = setInterval(() => {
10+
11+
const timestamps = Array.from({ length: 20 }, (_, i) =>
12+
Date.now() + i * 3
13+
);
14+
const signals = Array.from({ length: 4 }, () =>
15+
Array.from({ length: 65 }, () => Math.floor(Math.random() * 100))
16+
);
917
const data = {
10-
time: Date.now(), // Using milliseconds since epoch for time
11-
signals: Array.from({ length: 5 }, () =>
12-
Math.floor(Math.random() * 100)
13-
), // Random values for 5 brain regions
18+
timestamps,
19+
signals,
1420
};
1521

1622
ws.send(JSON.stringify(data));

0 commit comments

Comments
 (0)