Able to send and receive messages over socket
This commit is contained in:
parent
2728986258
commit
8fc6bd43b9
|
@ -3,11 +3,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.FD = void 0;
|
exports.FD = exports.Mode = exports.Action = void 0;
|
||||||
const net_1 = __importDefault(require("net"));
|
const net_1 = __importDefault(require("net"));
|
||||||
const log_1 = require("../log");
|
const log_1 = require("../log");
|
||||||
const shell_1 = require("../shell");
|
const shell_1 = require("../shell");
|
||||||
const delay_1 = require("../delay");
|
const delay_1 = require("../delay");
|
||||||
|
var Action;
|
||||||
|
(function (Action) {
|
||||||
|
Action[Action["NONE"] = 0] = "NONE";
|
||||||
|
Action[Action["LOAD"] = 1] = "LOAD";
|
||||||
|
Action[Action["DISPLAY"] = 2] = "DISPLAY";
|
||||||
|
Action[Action["STOP"] = 3] = "STOP";
|
||||||
|
})(Action || (exports.Action = Action = {}));
|
||||||
|
;
|
||||||
|
var Mode;
|
||||||
|
(function (Mode) {
|
||||||
|
Mode[Mode["RGB"] = 0] = "RGB";
|
||||||
|
Mode[Mode["BW"] = 1] = "BW";
|
||||||
|
Mode[Mode["INVERT"] = 2] = "INVERT";
|
||||||
|
Mode[Mode["BW_INVERT"] = 3] = "BW_INVERT";
|
||||||
|
Mode[Mode["RGB_CHANNELS"] = 4] = "RGB_CHANNELS";
|
||||||
|
Mode[Mode["INVERT_CHANNELS"] = 5] = "INVERT_CHANNELS";
|
||||||
|
})(Mode || (exports.Mode = Mode = {}));
|
||||||
|
;
|
||||||
class FD {
|
class FD {
|
||||||
constructor(bin, width, height, host, port) {
|
constructor(bin, width, height, host, port) {
|
||||||
this.socketAvailable = false;
|
this.socketAvailable = false;
|
||||||
|
@ -18,7 +36,7 @@ class FD {
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.port = port;
|
this.port = port;
|
||||||
this.log = (0, log_1.createLog)('fd');
|
this.log = (0, log_1.createLog)('fd');
|
||||||
this.shell = new shell_1.Shell([this.bin, `${this.width}`, `${this.height}`], this.logstd.bind(this), this.logsterr.bind(this), null, true);
|
this.shell = new shell_1.Shell([this.bin, `${this.width}`, `${this.height}`, `${this.port}`], this.logstd.bind(this), this.logsterr.bind(this), null, true);
|
||||||
this.startDisplay();
|
this.startDisplay();
|
||||||
this.startClient();
|
this.startClient();
|
||||||
this.test();
|
this.test();
|
||||||
|
@ -37,23 +55,16 @@ class FD {
|
||||||
this.client.connect(this.port, this.host, async function () {
|
this.client.connect(this.port, this.host, async function () {
|
||||||
this.socketConnected = true;
|
this.socketConnected = true;
|
||||||
this.log.info(`TCP socket client connected to ${this.host}:${this.port}`);
|
this.log.info(`TCP socket client connected to ${this.host}:${this.port}`);
|
||||||
/*const data = {
|
await (0, delay_1.delay)(1000);
|
||||||
action : 1,
|
const msg = {
|
||||||
image: 'filename.tif',
|
action: Action.LOAD,
|
||||||
|
image: './test.jpg'
|
||||||
};
|
};
|
||||||
this.log.info('SENDING');
|
this.send(msg);
|
||||||
this.log.info(data);
|
}.bind(this));
|
||||||
this.client.write(JSON.stringify(data));
|
this.client.on('data', function (data) {
|
||||||
await delay(2000);
|
this.receive(data);
|
||||||
data.action = 2;
|
|
||||||
this.log.info('SENDING');
|
|
||||||
this.log.info(data);
|
|
||||||
this.client.write(JSON.stringify(data));*/
|
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
this.client.on('data', (data) => {
|
|
||||||
this.log.info('RECEIVED');
|
|
||||||
this.log.info(data.toString());
|
|
||||||
});
|
|
||||||
this.client.on('close', () => {
|
this.client.on('close', () => {
|
||||||
this.log.info('Closing connection');
|
this.log.info('Closing connection');
|
||||||
});
|
});
|
||||||
|
@ -62,18 +73,49 @@ class FD {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
logstd(data) {
|
logstd(data) {
|
||||||
this.log.info(data);
|
this.log.info(`[shell] ${data}`);
|
||||||
if (data.indexOf('TCP server listening on port') !== -1 && data.indexOf(`${this.port}`) !== -1) {
|
if (data.indexOf('TCP server listening on port') !== -1 && data.indexOf(`${this.port}`) !== -1) {
|
||||||
this.socketAvailable = true;
|
this.socketAvailable = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
logsterr(data) {
|
logsterr(data) {
|
||||||
this.log.error(data);
|
this.log.error(`[shell] ${data}`);
|
||||||
}
|
}
|
||||||
async test() {
|
async test() {
|
||||||
await (0, delay_1.delay)(10000);
|
await (0, delay_1.delay)(10000);
|
||||||
this.shell.kill();
|
this.shell.kill();
|
||||||
}
|
}
|
||||||
|
send(msg) {
|
||||||
|
const json = JSON.stringify(msg);
|
||||||
|
this.log.info(json);
|
||||||
|
this.client.write(json);
|
||||||
|
}
|
||||||
|
receive(json) {
|
||||||
|
const msg = JSON.parse(json);
|
||||||
|
this.log.info(msg);
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
load(image, x, y, w, h) {
|
||||||
|
const msg = {
|
||||||
|
action: Action.LOAD,
|
||||||
|
image,
|
||||||
|
x,
|
||||||
|
y,
|
||||||
|
w,
|
||||||
|
h
|
||||||
|
};
|
||||||
|
this.send(msg);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
display(image, exposure) {
|
||||||
|
const msg = {
|
||||||
|
action: Action.DISPLAY,
|
||||||
|
image,
|
||||||
|
exposure
|
||||||
|
};
|
||||||
|
this.send(msg);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
exports.FD = FD;
|
exports.FD = FD;
|
||||||
//# sourceMappingURL=index.js.map
|
//# sourceMappingURL=index.js.map
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fd/index.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fd/index.ts"],"names":[],"mappings":"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"}
|
109
src/fd/index.ts
109
src/fd/index.ts
|
@ -5,6 +5,38 @@ import { createLog } from '../log'
|
||||||
import { Shell } from '../shell';
|
import { Shell } from '../shell';
|
||||||
import { delay } from '../delay';
|
import { delay } from '../delay';
|
||||||
|
|
||||||
|
export enum Action {
|
||||||
|
NONE,
|
||||||
|
LOAD,
|
||||||
|
DISPLAY,
|
||||||
|
STOP
|
||||||
|
};
|
||||||
|
|
||||||
|
export enum Mode {
|
||||||
|
RGB,
|
||||||
|
BW,
|
||||||
|
INVERT,
|
||||||
|
BW_INVERT,
|
||||||
|
RGB_CHANNELS,
|
||||||
|
INVERT_CHANNELS
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface fdOutgoingMessage {
|
||||||
|
action : Action,
|
||||||
|
image : string,
|
||||||
|
mode? : Mode,
|
||||||
|
x? : number,
|
||||||
|
y? : number,
|
||||||
|
w? : number,
|
||||||
|
h? : number,
|
||||||
|
exposure? : number[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface fdIncomingMessage {
|
||||||
|
action : Action,
|
||||||
|
success : boolean
|
||||||
|
}
|
||||||
|
|
||||||
export class FD {
|
export class FD {
|
||||||
private bin : string;
|
private bin : string;
|
||||||
private width : number;
|
private width : number;
|
||||||
|
@ -24,7 +56,7 @@ export class FD {
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.port = port;
|
this.port = port;
|
||||||
this.log = createLog('fd');
|
this.log = createLog('fd');
|
||||||
this.shell = new Shell([ this.bin, `${this.width}`, `${this.height}` ], this.logstd.bind(this), this.logsterr.bind(this), null, true);
|
this.shell = new Shell([ this.bin, `${this.width}`, `${this.height}`, `${this.port}` ], this.logstd.bind(this), this.logsterr.bind(this), null, true);
|
||||||
this.startDisplay();
|
this.startDisplay();
|
||||||
this.startClient();
|
this.startClient();
|
||||||
this.test();
|
this.test();
|
||||||
|
@ -45,24 +77,17 @@ export class FD {
|
||||||
this.client.connect(this.port, this.host, async function () {
|
this.client.connect(this.port, this.host, async function () {
|
||||||
this.socketConnected = true;
|
this.socketConnected = true;
|
||||||
this.log.info(`TCP socket client connected to ${this.host}:${this.port}`);
|
this.log.info(`TCP socket client connected to ${this.host}:${this.port}`);
|
||||||
/*const data = {
|
await delay(1000);
|
||||||
action : 1,
|
const msg : fdOutgoingMessage = {
|
||||||
image: 'filename.tif',
|
action : Action.LOAD,
|
||||||
|
image : './test.jpg'
|
||||||
};
|
};
|
||||||
this.log.info('SENDING');
|
this.send(msg);
|
||||||
this.log.info(data);
|
|
||||||
this.client.write(JSON.stringify(data));
|
|
||||||
await delay(2000);
|
|
||||||
data.action = 2;
|
|
||||||
this.log.info('SENDING');
|
|
||||||
this.log.info(data);
|
|
||||||
this.client.write(JSON.stringify(data));*/
|
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
|
|
||||||
this.client.on('data', (data : string) => {
|
this.client.on('data', function (data : string) {
|
||||||
this.log.info('RECEIVED');
|
this.receive(data);
|
||||||
this.log.info(data.toString());
|
}.bind(this));
|
||||||
});
|
|
||||||
|
|
||||||
this.client.on('close', () => {
|
this.client.on('close', () => {
|
||||||
this.log.info('Closing connection');
|
this.log.info('Closing connection');
|
||||||
|
@ -73,20 +98,64 @@ export class FD {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private logstd ( data : string ) {
|
private logstd (data : string ) {
|
||||||
this.log.info(data);
|
this.log.info(`[shell] ${data}`);
|
||||||
if (data.indexOf('TCP server listening on port') !== -1 && data.indexOf(`${this.port}`) !== -1) {
|
if (data.indexOf('TCP server listening on port') !== -1 && data.indexOf(`${this.port}`) !== -1) {
|
||||||
this.socketAvailable = true;
|
this.socketAvailable = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private logsterr ( data : string) {
|
private logsterr (data : string) {
|
||||||
this.log.error(data);
|
this.log.error(`[shell] ${data}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async test () {
|
private async test () {
|
||||||
await delay(10000);
|
await delay(10000);
|
||||||
this.shell.kill();
|
this.shell.kill();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private send (msg : fdOutgoingMessage) {
|
||||||
|
const json : string = JSON.stringify(msg);
|
||||||
|
this.log.info(json);
|
||||||
|
this.client.write(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
private receive (json : string) : fdIncomingMessage {
|
||||||
|
const msg : fdIncomingMessage = JSON.parse(json);
|
||||||
|
this.log.info(msg);
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async load (image : string, x : number, y : number, w : number, h : number) : Promise<boolean> {
|
||||||
|
const msg : fdOutgoingMessage = {
|
||||||
|
action : Action.LOAD,
|
||||||
|
image,
|
||||||
|
x,
|
||||||
|
y,
|
||||||
|
w,
|
||||||
|
h
|
||||||
|
};
|
||||||
|
this.send(msg);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async display (image : string, exposure : number[]) : Promise<boolean> {
|
||||||
|
const msg : fdOutgoingMessage = {
|
||||||
|
action : Action.DISPLAY,
|
||||||
|
image,
|
||||||
|
exposure
|
||||||
|
};
|
||||||
|
this.send(msg);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async stop (image : string) : Promise<boolean> {
|
||||||
|
const msg : fdOutgoingMessage = {
|
||||||
|
action : Action.STOP,
|
||||||
|
image
|
||||||
|
};
|
||||||
|
this.send(msg);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue