Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
01a4bcfb23 | |||
dd38ede4ed | |||
4127182174 | |||
a530c81225 |
@ -33,6 +33,9 @@ class PrinterDevice extends EventEmitter {
|
|||||||
if (chkSerial) {
|
if (chkSerial) {
|
||||||
this._device = new escpos.Serial(this._serial)
|
this._device = new escpos.Serial(this._serial)
|
||||||
this._type = 'serial'
|
this._type = 'serial'
|
||||||
|
this._device.on('disconnect', () => {
|
||||||
|
self.emit('close')
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
this._device = new escpos.Console()
|
this._device = new escpos.Console()
|
||||||
this._type = 'console'
|
this._type = 'console'
|
||||||
|
34
server.js
34
server.js
@ -66,9 +66,10 @@ if (setupMode) {
|
|||||||
Printer.feed = config.printer.feed
|
Printer.feed = config.printer.feed
|
||||||
await Printer.connect()
|
await Printer.connect()
|
||||||
|
|
||||||
if (config.ble.enable) {
|
Printer.on('close', ()=>{
|
||||||
require('./ble')
|
console.log('device disconnect')
|
||||||
}
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (router !== null) {
|
if (router !== null) {
|
||||||
@ -91,12 +92,6 @@ localEvent.on('print', async str => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
let systemStatus = {
|
let systemStatus = {
|
||||||
ble: {
|
|
||||||
enable: false,
|
|
||||||
mac: '',
|
|
||||||
service: '',
|
|
||||||
characteristic: ''
|
|
||||||
},
|
|
||||||
printer: {
|
printer: {
|
||||||
connect: false,
|
connect: false,
|
||||||
serial: '',
|
serial: '',
|
||||||
@ -107,13 +102,8 @@ let systemStatus = {
|
|||||||
secret: ''
|
secret: ''
|
||||||
}
|
}
|
||||||
|
|
||||||
systemStatus.ble.enable = config.ble.enable
|
|
||||||
systemStatus.secret = config.api.secret
|
systemStatus.secret = config.api.secret
|
||||||
if (config.ble.enable) {
|
|
||||||
systemStatus.ble.mac = await getBTAddr()
|
|
||||||
systemStatus.ble.service = config.ble.uuid.service
|
|
||||||
systemStatus.ble.characteristic = config.ble.uuid.characteristic
|
|
||||||
}
|
|
||||||
function getPrinterStatus() {
|
function getPrinterStatus() {
|
||||||
systemStatus.printer.connect = Printer.isOpen
|
systemStatus.printer.connect = Printer.isOpen
|
||||||
systemStatus.printer.serial = Printer.serial
|
systemStatus.printer.serial = Printer.serial
|
||||||
@ -148,17 +138,3 @@ ws.on('connection', async (client, req) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
async function getBTAddr() {
|
|
||||||
let address = await new Promise((resolve, reject) => {
|
|
||||||
exec('bt-adapter -i | grep -i address', (err, sout, serr) => {
|
|
||||||
if (err) return resolve('')
|
|
||||||
resolve(sout)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
address = address.trim()
|
|
||||||
let arr = address.split(' ')
|
|
||||||
if (arr.length !== 2) return ''
|
|
||||||
return arr[1].trim()
|
|
||||||
}
|
|
@ -1,5 +1,7 @@
|
|||||||
<%- include ../includes/header.ejs %>
|
<%- include ../includes/header.ejs %>
|
||||||
|
<div class="ui dimmer" id="loader">
|
||||||
|
<div class="ui loader text">Rebooting...</div>
|
||||||
|
</div>
|
||||||
<div class="ui container" style="padding-top: 20px;">
|
<div class="ui container" style="padding-top: 20px;">
|
||||||
<div class="ui grid">
|
<div class="ui grid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -40,9 +40,6 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="ui dimmer" id="loader">
|
|
||||||
<div class="ui loader text">Rebooting...</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
function getValue(obj){
|
function getValue(obj){
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<div class="column sixteen wide t-right">
|
<div class="column sixteen wide t-right">
|
||||||
<div class="ui segment">
|
<div class="ui segment">
|
||||||
<button class="ui button mini" type="button" id="gen-api-qr">Generate API QR</button>
|
<button class="ui button mini" type="button" id="gen-api-qr">Generate API QR</button>
|
||||||
<button class="ui button mini" type="button" id="gen-ble-qr">Generate BLE QR</button>
|
<button class="ui button mini red" type="button" id="dev-reboot">Reboot</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="column sixteen wide">
|
<div class="column sixteen wide">
|
||||||
@ -19,45 +19,21 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="column eight wide">
|
|
||||||
<div class="segment ui">
|
|
||||||
<h4 class="ui header dividing">藍芽狀態</h4>
|
|
||||||
<div class="ui divided list">
|
|
||||||
<div class="item">
|
|
||||||
<div class="ui horizontal label basic">啟用狀態</div>
|
|
||||||
<div class="description t-right" id="en-ble">On</div>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<div class="ui horizontal label basic">Mac Address</div>
|
|
||||||
<div class="description t-right" id="ble-mac">00:11:22:33:44:55:66</div>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<div class="ui horizontal label basic">ServiceUUID</div>
|
|
||||||
<div class="description t-right" id="ble-service">37B2975E-1A4B-4975-9211-9D47142B8183</div>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<div class="ui horizontal label basic">CharacteristicUUID</div>
|
|
||||||
<div class="description t-right" id="ble-character">37B2975E-1A4B-4975-9211-9D47142B8183</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="column eight wide">
|
<div class="column eight wide">
|
||||||
<div class="segment ui">
|
<div class="segment ui">
|
||||||
<h4 class="ui header dividing">印表機狀態</h4>
|
<h4 class="ui header dividing">印表機狀態</h4>
|
||||||
<div class="ui divided list">
|
<div class="ui divided list">
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<div class="ui horizontal label basic">連線狀態</div>
|
<div class="ui horizontal label basic">連線狀態</div>
|
||||||
<div class="description t-right" id="prt-con">Disconnected</div>
|
<div class="description t-right" id="prt-con"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<div class="ui horizontal label basic">連接埠</div>
|
<div class="ui horizontal label basic">連接埠</div>
|
||||||
<div class="description t-right" id="prt-port">/dev/ttyUSB0</div>
|
<div class="description t-right" id="prt-port"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<div class="ui horizontal label basic">切紙前空行</div>
|
<div class="ui horizontal label basic">切紙前空行</div>
|
||||||
<div class="description t-right" id="prt-feed">8</div>
|
<div class="description t-right" id="prt-feed"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -90,6 +66,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="ui mini modal" id="confirm-box">
|
||||||
|
<div class=" content">
|
||||||
|
確定要把設備重新啟動嗎?
|
||||||
|
</div>
|
||||||
|
<div class="actions">
|
||||||
|
<div class="ui black deny button" id="close">
|
||||||
|
取消
|
||||||
|
</div>
|
||||||
|
<div class="ui button red" id="run">
|
||||||
|
確定
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var setting = {
|
var setting = {
|
||||||
mac: '',
|
mac: '',
|
||||||
@ -98,8 +88,17 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
var apikey = ''
|
var apikey = ''
|
||||||
|
var ws = null
|
||||||
|
|
||||||
var ws = new WebSocket('ws://' + location.host)
|
function connectSocket() {
|
||||||
|
ws = new WebSocket('ws://' + location.host)
|
||||||
|
ws.onclose = () => {
|
||||||
|
ws = null
|
||||||
|
setTimeout(() => {
|
||||||
|
console.log(`try reconnect`)
|
||||||
|
connectSocket()
|
||||||
|
}, 2000)
|
||||||
|
}
|
||||||
ws.onmessage = msg => {
|
ws.onmessage = msg => {
|
||||||
// console.log(msg)
|
// console.log(msg)
|
||||||
let data = {}
|
let data = {}
|
||||||
@ -113,14 +112,6 @@
|
|||||||
case 'status':
|
case 'status':
|
||||||
console.log(data)
|
console.log(data)
|
||||||
let d = data.data
|
let d = data.data
|
||||||
$('#en-ble').text(d.ble.enable ? 'On' : 'Off')
|
|
||||||
$('#ble-mac').text(d.ble.mac)
|
|
||||||
$('#ble-service').text(d.ble.service)
|
|
||||||
$('#ble-character').text(d.ble.characteristic)
|
|
||||||
|
|
||||||
setting.mac = d.ble.mac
|
|
||||||
setting.service = d.ble.service
|
|
||||||
setting.characteristic = d.ble.characteristic
|
|
||||||
|
|
||||||
apikey = d.secret
|
apikey = d.secret
|
||||||
$('#apikey').text(apikey)
|
$('#apikey').text(apikey)
|
||||||
@ -135,18 +126,43 @@
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$('#gen-ble-qr, #gen-api-qr').click(function () {
|
connectSocket()
|
||||||
|
|
||||||
|
$('#gen-api-qr').click(function () {
|
||||||
let qrdiv = document.querySelector('div#qr')
|
let qrdiv = document.querySelector('div#qr')
|
||||||
qrdiv.innerHTML = ''
|
qrdiv.innerHTML = ''
|
||||||
let qr = new QRCode(qrdiv, {
|
let qr = new QRCode(qrdiv, {
|
||||||
text: this.id === 'gen-ble-qr' ? JSON.stringify(setting, null, 2) : JSON.stringify({apikey}, null, 2),
|
text: JSON.stringify({ apikey }, null, 2),
|
||||||
colorDark: "#000000",
|
colorDark: "#000000",
|
||||||
colorLight: "#ffffff",
|
colorLight: "#ffffff",
|
||||||
correctLevel: QRCode.CorrectLevel.L
|
correctLevel: QRCode.CorrectLevel.L
|
||||||
})
|
})
|
||||||
// qr.makeCode(JSON.stringify(setting, null, 2))
|
|
||||||
$('#qr-dimmer').dimmer('show')
|
$('#qr-dimmer').dimmer('show')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
$('#dev-reboot').click(function(){
|
||||||
|
$('#confirm-box').modal('show')
|
||||||
|
$('#confirm-box #close').unbind('click').click(function(){
|
||||||
|
$('#confirm-box').modal('hide')
|
||||||
|
})
|
||||||
|
$('#confirm-box #run').unbind('click').click(function(){
|
||||||
|
$('#confirm-box').modal('hide')
|
||||||
|
$.ajax({
|
||||||
|
url: '/reboot_sys',
|
||||||
|
type: 'put',
|
||||||
|
success: function(){
|
||||||
|
setTimeout(function(){
|
||||||
|
location.replace('/')
|
||||||
|
}, 30000)
|
||||||
|
$('#loader').addClass('active')
|
||||||
|
},
|
||||||
|
error: function(){
|
||||||
|
alert('系統重新啟動失敗')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
Loading…
Reference in New Issue
Block a user