configure timeout

This commit is contained in:
David Ventura
2024-05-07 12:06:46 +02:00
parent 2facd91fb5
commit 04fb1a8e4c
2 changed files with 6 additions and 7 deletions
+2 -3
View File
@@ -4,7 +4,7 @@ import http from "node:http";
import { logger } from "./logger.js"; import { logger } from "./logger.js";
import { config } from "./settings.js"; import { config } from "./settings.js";
import { discoverDevices } from "./discovery.js"; import { discoverDevices } from "./discovery.js";
import { DevSerial, SendDevStatus } from "./impl.js"; import { DevSerial } from "./impl.js";
import { Handlers, makeSession, Session, startVideoStream } from "./session.js"; import { Handlers, makeSession, Session, startVideoStream } from "./session.js";
import { addExifToJpeg, createExifOrientation } from "./exif.js"; import { addExifToJpeg, createExifOrientation } from "./exif.js";
@@ -138,7 +138,6 @@ export const serveHttp = (port: number) => {
let devEv = discoverDevices(config.discovery_ips); let devEv = discoverDevices(config.discovery_ips);
const startSession = (s: Session) => { const startSession = (s: Session) => {
s.send(SendDevStatus(s));
startVideoStream(s); startVideoStream(s);
logger.info(`Camera ${s.devName} is now ready to stream`); logger.info(`Camera ${s.devName} is now ready to stream`);
}; };
@@ -152,7 +151,7 @@ export const serveHttp = (port: number) => {
logger.info(`Discovered camera ${dev.devId} at ${rinfo.address}`); logger.info(`Discovered camera ${dev.devId} at ${rinfo.address}`);
responses[dev.devId] = []; responses[dev.devId] = [];
audioResponses[dev.devId] = []; audioResponses[dev.devId] = [];
const s = makeSession(Handlers, dev, rinfo, startSession); const s = makeSession(Handlers, dev, rinfo, startSession, 5000);
sessions[dev.devId] = s; sessions[dev.devId] = s;
config.cameras[dev.devId] = { rotate: 0, mirror: false, audio: true, ...(config.cameras[dev.devId] || {}) }; config.cameras[dev.devId] = { rotate: 0, mirror: false, audio: true, ...(config.cameras[dev.devId] || {}) };
+4 -4
View File
@@ -61,6 +61,7 @@ export const makeSession = (
dev: DevSerial, dev: DevSerial,
ra: RemoteInfo, ra: RemoteInfo,
onLogin: (s: Session) => void, onLogin: (s: Session) => void,
timeoutMs: number,
): Session => { ): Session => {
let unackedDrw = {}; let unackedDrw = {};
const sock = createSocket("udp4"); const sock = createSocket("udp4");
@@ -86,8 +87,7 @@ export const makeSession = (
let buf = create_P2pAlive(); let buf = create_P2pAlive();
session.send(buf); session.send(buf);
} }
if (delta > 9000) { if (delta > timeoutMs) {
// should depend on whether we are streaming video
logger.warning(`Camera ${session.devName} timed out`); logger.warning(`Camera ${session.devName} timed out`);
session.eventEmitter.emit("disconnect"); session.eventEmitter.emit("disconnect");
} }
@@ -161,9 +161,9 @@ export const makeSession = (
return session; return session;
}; };
export const configureWifi = (ssid: string, password: string) => { export const configureWifi = (ssid: string, password: string, channel: number) => {
return (s: Session) => { return (s: Session) => {
[SendWifiDetails(s, ssid, password, true)].forEach(s.send); [SendWifiDetails(s, ssid, password, channel, true)].forEach(s.send);
}; };
}; };