82 lines
2.3 KiB
JavaScript
82 lines
2.3 KiB
JavaScript
goog.loadJs('web', () => {
|
|
|
|
goog.require('Mixly.Debug');
|
|
goog.require('Mixly.StatusBarsManager');
|
|
goog.require('Mixly.WebSocket');
|
|
goog.require('Mixly.WebSocket.Serial');
|
|
goog.require('Mixly.WebSocket.ArduShell');
|
|
goog.require('Mixly.WebSocket.BU');
|
|
goog.provide('Mixly.WebSocket.Socket');
|
|
|
|
const {
|
|
Debug,
|
|
StatusBarsManager,
|
|
WebSocket
|
|
} = Mixly;
|
|
|
|
const {
|
|
Socket,
|
|
Serial,
|
|
ArduShell,
|
|
BU
|
|
} = WebSocket;
|
|
|
|
|
|
Socket.init = function () {
|
|
const mixlySocket = new WebSocket('wss://127.0.0.1:4000', {
|
|
path: '/mixly-socket/',
|
|
reconnection: true,
|
|
reconnectionDelayMax: 10000,
|
|
transports: ['websocket'],
|
|
protocols: ['my-protocol-v1']
|
|
});
|
|
|
|
const socket = mixlySocket.getSocket();
|
|
|
|
socket.on('connect', () => {
|
|
|
|
Serial.getPorts()
|
|
.then((ports) => {
|
|
let portsName = [];
|
|
for (let port of ports) {
|
|
portsName.push(port.name);
|
|
}
|
|
const { mainStatusBarTabs } = Mixly;
|
|
let keys = mainStatusBarTabs.keys();
|
|
const statusBarType = StatusBarsManager.typesRegistry.getItem('serial');
|
|
for (let key of keys) {
|
|
const statusBar = mainStatusBarTabs.getStatusBarById(key);
|
|
if (!(statusBar instanceof statusBarType)) {
|
|
continue;
|
|
}
|
|
const portName = statusBar.getPortName();
|
|
if (!portsName.includes(portName)) {
|
|
continue;
|
|
}
|
|
socket.emit('serial.create', portName);
|
|
}
|
|
Serial.renderSelectBox(ports);
|
|
})
|
|
.catch(Debug.error);
|
|
});
|
|
|
|
socket.on('disconnect', () => {
|
|
const { mainStatusBarTabs } = Mixly;
|
|
let keys = mainStatusBarTabs.keys();
|
|
const statusBarType = StatusBarsManager.typesRegistry.getItem('serial');
|
|
for (let key of keys) {
|
|
const statusBar = mainStatusBarTabs.getStatusBarById(key);
|
|
if (statusBar instanceof statusBarType) {
|
|
statusBar.close().catch(Debug.error);
|
|
}
|
|
}
|
|
Serial.refreshPorts();
|
|
});
|
|
|
|
Serial.init(mixlySocket);
|
|
ArduShell.init(mixlySocket);
|
|
BU.init(mixlySocket);
|
|
}
|
|
|
|
});
|