configure timeout
This commit is contained in:
+2
-3
@@ -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
@@ -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);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user