Skip to content

Commit

Permalink
Test case to force skip a pktid, to simulate the atem not receiving a…
Browse files Browse the repository at this point in the history
… pkt
  • Loading branch information
Julusian committed Oct 17, 2018
1 parent fd3d045 commit c8caeaa
Show file tree
Hide file tree
Showing 6 changed files with 915 additions and 1 deletion.
40 changes: 40 additions & 0 deletions retry.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
const { Atem } = require('./dist')

const IP = '10.42.13.99'

async function runNext() {
conn.socket.getPktId()
const parts = [
conn.changePreviewInput(3)
]
conn.socket.bumpPktId()
conn.socket.getPktId()

Promise.all(parts).then(c => {
console.log('done')
// setTimeout(() => runNext(), 0)
// console.log(JSON.stringify(conn.state.video.ME, undefined, 4))

conn.changePreviewInput(4)
}).catch(e => {
console.log('err', e)
// setTimeout(() => runNext(), 0)
})
}

let conn = new Atem({ debug: true })
conn.on('error', () => {}) //console.log)
conn.on('stateChanged', () => console.log(JSON.stringify(conn.state.video.ME[0].previewInput, undefined, 4)))
conn.socket.on('getPktId', a => console.log('pktId: ', a))
conn.socket.on('bumpPktId', a => console.log('bump: ', a))
conn.connect(IP)
conn.once('connected', () => {
console.log('connect in')
t = Date.now()
runNext()

})

// setInterval(() => {
// console.log('st', JSON.stringify(conn.state))
// }, 10000)
4 changes: 3 additions & 1 deletion src/enums/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,9 @@ export enum IPCMessageType {
InboundCommand = 'inboundCommand',
OutboundCommand = 'outboundCommand',
CommandAcknowledged = 'commandAcknowledged',
CommandTimeout = 'commandTimeout'
CommandTimeout = 'commandTimeout',
GetPktId = 'getPktId',
BumpPktId = 'bumpPktId'
}

export enum TransferMode {
Expand Down
18 changes: 18 additions & 0 deletions src/lib/atemSocket.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,18 @@ export class AtemSocket extends EventEmitter {
})
}

bumpPktId () {
return Util.sendIPCMessage(this, '_socketProcess', {
cmd: IPCMessageType.BumpPktId
}, this.log)
}

getPktId () {
return Util.sendIPCMessage(this, '_socketProcess', {
cmd: IPCMessageType.GetPktId
}, this.log)
}

private _createSocketProcess () {
if (this._socketProcess) {
this._socketProcess.removeAllListeners()
Expand Down Expand Up @@ -143,6 +155,12 @@ export class AtemSocket extends EventEmitter {

const payload = message.payload
switch (message.cmd) {
case IPCMessageType.GetPktId:
this.emit(IPCMessageType.GetPktId, message.payload)
break
case IPCMessageType.BumpPktId:
this.emit(IPCMessageType.BumpPktId, message.payload)
break
case IPCMessageType.Log:
this.log(message.payload)
break
Expand Down
8 changes: 8 additions & 0 deletions src/lib/atemSocketChild.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,14 @@ export class AtemSocketChild extends EventEmitter {
})
}

public _getPktId () {
this.emit(IPCMessageType.GetPktId, '#' + this._localPacketId)
}

public _bumpPktId () {
this.emit(IPCMessageType.BumpPktId, 'skip #' + this._localPacketId++)
}

public log (...args: any[]): void {
const payload = format.apply(format, args)
this.emit(IPCMessageType.Log, payload)
Expand Down
20 changes: 20 additions & 0 deletions src/socket-child.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,12 @@ process.on('message', message => {
case IPCMessageType.OutboundCommand:
singleton._sendCommand(Buffer.from(payload.data.data), payload.trackingId)
break
case IPCMessageType.GetPktId:
singleton._getPktId()
break
case IPCMessageType.BumpPktId:
singleton._bumpPktId()
break
}
})

Expand All @@ -32,6 +38,20 @@ singleton.on(IPCMessageType.Disconnect, () => {
})
})

singleton.on(IPCMessageType.BumpPktId, (message: string) => {
sendParentMessage({
cmd: IPCMessageType.BumpPktId,
payload: message
})
})

singleton.on(IPCMessageType.GetPktId, (message: string) => {
sendParentMessage({
cmd: IPCMessageType.GetPktId,
payload: message
})
})

singleton.on(IPCMessageType.Log, (message: string) => {
sendParentMessage({
cmd: IPCMessageType.Log,
Expand Down
Loading

0 comments on commit c8caeaa

Please sign in to comment.