import Vue from 'vue'
|
import { ConnectedDevice, Lifecycle } from '@psdk/frame-father';
|
import { CPCL, GenericCPCL } from '@psdk/cpcl';
|
import { GenericTSPL, TSPL } from '@psdk/tspl';
|
import { ESC, GenericESC } from '@psdk/esc';
|
|
class Printer {
|
private _connectedDevice ?: ConnectedDevice;
|
private _cpcl ?: GenericCPCL;
|
private _tspl ?: GenericTSPL;
|
private _esc ?: GenericESC;
|
init(connectedDevice : ConnectedDevice) {
|
this._connectedDevice = connectedDevice;
|
const lifecycle = new Lifecycle(connectedDevice);
|
this._cpcl = CPCL.generic(lifecycle);
|
this._tspl = TSPL.generic(lifecycle);
|
this._esc = ESC.generic(lifecycle);
|
}
|
|
isConnected() : boolean {
|
return this._connectedDevice != null;
|
}
|
|
connectedDevice() : ConnectedDevice | undefined {
|
return this._connectedDevice;
|
}
|
|
|
cpcl() : GenericCPCL {
|
if (!this._connectedDevice)
|
throw Error('The device is not connected');
|
return this._cpcl!;
|
}
|
tspl() : GenericTSPL {
|
if (!this._connectedDevice)
|
throw Error('The device is not connected');
|
return this._tspl!;
|
}
|
esc() : GenericESC {
|
if (!this._connectedDevice)
|
throw Error('The device is not connected');
|
return this._esc!;
|
}
|
}
|
|
export default {
|
install: function () {
|
Vue.prototype.$printer = new Printer();
|
}
|
}
|