Select Git revision
-
Erik Strand authoredErik Strand authored
link.js 10.78 KiB
/*
hookup,
*/
// HEADER
import {
Hunkify,
Input,
Output,
State
} from './hunks.js'
// END HEADER
import {
TSET,
LK,
MSGS,
findPhy
} from '../typeset.js'
function Link() {
Hunkify(this)
let debug = false
let dtin = new Input('byteArray', 'data', this)
this.inputs.push(dtin)
let dtout = new Output('byteArray', 'data', this)
this.outputs.push(dtout)
// needs 2 trak status
let isActive = new State('boolean', 'isActive', false)
let otherLink = new State('uint16', 'otherLink', 0)
this.states.push(isActive, otherLink)
// default messages -> manager, besides also data link
let inputList = new State('string', 'inputList', "mgrMsgs (byteArray)")
let outputList = new State('string', 'outputList', "mgrMsgs (byteArray)")
this.states.push(inputList, outputList)
/* --------------------------- ---------------------------- */
/* ------------------ OP ON KEYS FROM STATE ------------------ */
/* --------------------------- ---------------------------- */
let getTypeAndNameKeys = (str) => {
let keys = str.split(',')
// console.log('keys', keys)
let ks = new Array()
for (let i in keys) {
let tk = keys[i].substring(keys[i].indexOf('(') + 1, keys[i].indexOf(')'))
let nk = keys[i].substring(0, keys[i].indexOf(' ('))
if (nk[0] == ' ') nk = nk.substring(1)
if (tk.length < 2 || nk.length < 2) {
this.log('bad key pair on inputs / outputs at link')
} else {
ks.push({
typeKey: tk,
nameKey: nk
})
}
}
return ks
}
let swapLists = (newList, input) => {
// list,
let nks = getTypeAndNameKeys(newList)
// old list,