{"_id":"@autocodingsystems/x20-device","_rev":"5-cd07011f1b407d86b53c5469e0ac7ba6","name":"@autocodingsystems/x20-device","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@autocodingsystems/x20-device","version":"1.0.0","description":"A framework for creating a generic device that the ACS X20 driver can talk to.","main":"lib/device.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"ACS"},"license":"ISC","dependencies":{"machina":"^4.0.2","nodemon":"^2.0.6"},"gitHead":"29638e20d9940759f899d390591c195e84d7447f","_id":"@autocodingsystems/x20-device@1.0.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-TDOXHeNtK0VbR4cJqlv58QI3XnLHfqEEpml3vhB23UepqveHaK2ROVrgcpSb8a+GxkpFoVhITBtdrN/EfXgYuw==","shasum":"bb5f4b04cb9aacdaf343972cbbba78f479f5f69b","tarball":"https://registry.npmjs.org/@autocodingsystems/x20-device/-/x20-device-1.0.0.tgz","fileCount":12,"unpackedSize":36075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4KNJCRA9TVsSAnZWagAA4jgP/RcuD+CJ3YAlVPjzodr9\neGIlB0bsyg/fgIpV/tfr5U6Ttwu5taMhMwlDtXLWZeK9lDb2yo8rn/PTePPD\npPr/VBIDXTXblETohnpPulq2lB1rFywBgVAFy1U1X9Y60f/j+CbyNegxUyZq\nXLxLNU1YcRtXhYQEoYkVv1coHhQkU21B0VpJ0d1o+Inwud7nIhouO9PSJSAI\n6AX5Fgmou95/bopcax692TY6N4J5xlO/B13TfYGBhhvsSHx7Gx8fEppo66qo\nLaQ+cTawYfEXteqLfpZfOWxRDrCenZJkzfBmBSrQ2NYsWKyCBv5iMkD0glXO\nNkkjE4czepogqas3RC5Q9K2N+NCuX4j3/1RaaDzMMXh7h0/BGx0xNXxy1xlj\nnUIxQk2yTWmWsxgTWmZDjLGGapzi/DyaOVBWIs2MnJEj719jWrakAhlKN47U\nTSijgCzCTirpJd8F1Zkavh/h6ReCIshdGnN2sLjmwmBysK63akOcfjBndhb0\nalwE7bCKwh3zs+Nue/+GH1Q9efS94rSBRqL8wGQadLapRnkSr/L+wtomqaa8\nvc5OXmNC91mCrWjEnUDM9sjHd5+AhIay8b4LV9KSbq6jEIAJmRYnyzUB0MbQ\ntipJVskvkLhKWpHNfyoljXWUhNOZwnl6VqCTt5zChnbMdGnMvmWdZZlMNVzd\n0fi5\r\n=OfKT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqwVR7olIJBoeRcmbpyjRV00Dczh5b821uULpjQmi1bQIhAN11U1XA8qr4gAycXg8r0k4uqtnWoYqJbiCrodwRpvWy"}]},"_npmUser":{"name":"autocodingadmin","email":"jimtupper@autocodingsystems.com"},"directories":{},"maintainers":[{"name":"autocodingadmin","email":"jimtupper@autocodingsystems.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/x20-device_1.0.0_1608557384752_0.8595078940164051"},"_hasShrinkwrap":false},"1.0.1":{"name":"@autocodingsystems/x20-device","version":"1.0.1","description":"A framework for creating a generic device that the ACS X20 driver can talk to.","main":"lib/device.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"ACS"},"license":"ISC","dependencies":{"machina":"^4.0.2","nodemon":"^2.0.6"},"gitHead":"0de23ba0de33e8a395637ce9103712861fa23ec7","_id":"@autocodingsystems/x20-device@1.0.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-6V+/3rQixsUOBb0bNjvLNILKr6N99Alh0FvMIY4unqfbSOioMYF7Vli1bao9E0hKmUvhxKqnKVqemUpUYUIxFw==","shasum":"89aa943480af5e6729dee9ab2b739bd56730db18","tarball":"https://registry.npmjs.org/@autocodingsystems/x20-device/-/x20-device-1.0.1.tgz","fileCount":12,"unpackedSize":35427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4MsFCRA9TVsSAnZWagAAuFgP/AyOppGwurusPVybQHQm\ngjJNbcVmnPuVve/s4kxObFSVve2nA6M1rYLfqB1ASPk//HU6dOdZQJxsR5su\ntb7GKioikwqNDOkAuB2nvSCdBRJGYNHmAa7KA6PMjGrew5wQHDs+uvoZrxFb\nZhgl00lmc4DGcJ1mtQs2fR+wAYISpl3tz6Dmp941SMzvAmtWxV375R9nT2yj\nei4+umsCHh9Qt7/Ffd6snS6FQ8UkIldyz4uDwr+61p6Yxtl6HQBgihiYQXJE\njJA3KDjKM67PVyJq99JREjs8OmH4RPY5uPP2w1j/fPbUfJlCE4R2mqAPAt0F\nHY4cCnFSePGKYLu6ToVCrhgUFWne5BbRslW1uSCgNlBeE6gSS5mEOPmDge9H\nI3Ir8scrWqehfmnhO6oiRiRArHhM/Scw0y0sdN1YgZJdAsgOOCX8Az/ooUqp\n2i0A5P0SEa3Ip/V+5y0HG53hLEKehNXP+AMCAu6CXDMQ3/vGTVjmoBc7h2pC\nuP0fUw7rvo4IID/Rqt41qFLidKhQjDSsyZaRXVplnU5zieYyuqHYe3AEde6W\ntU/nxvS5W7pSV084OtOKc7ISIbdRpGprOiAGx5FztcnOkvSAwulM0AiSmtP6\nEevWqOLeuTOW2eFhKeCtSTuwqQcDGOnN7SycARm6PvkX5efwjDnC9uURszir\nPW4A\r\n=cHYe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCl1PD9rPht/17CGYC+cXWtc/FiyOiWCFJ/O4WG//d4CQIhAOrF38Nr+1JSmd/COjUvA9UeSN2tvKs2cb2q8+tMt0Id"}]},"_npmUser":{"name":"autocodingadmin","email":"jimtupper@autocodingsystems.com"},"directories":{},"maintainers":[{"name":"autocodingadmin","email":"jimtupper@autocodingsystems.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/x20-device_1.0.1_1608567556675_0.28149454211173675"},"_hasShrinkwrap":false},"1.0.2":{"name":"@autocodingsystems/x20-device","version":"1.0.2","description":"A framework for creating a generic device that the ACS X20 driver can talk to.","main":"lib/device.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"ACS"},"license":"ISC","dependencies":{"machina":"^4.0.2","nodemon":"^2.0.6"},"gitHead":"0de23ba0de33e8a395637ce9103712861fa23ec7","_id":"@autocodingsystems/x20-device@1.0.2","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Zl5uUqirboZy85QI8N+kzx/SfH5J/jwY1svKLqjoKxFEoBZCXs/+GaaKYTdVe/OWwlMNv1ZGmnkoZWOKEW9nVQ==","shasum":"2925f462489eb9b78f3ec9e7cd3fd2ea36d6b30d","tarball":"https://registry.npmjs.org/@autocodingsystems/x20-device/-/x20-device-1.0.2.tgz","fileCount":12,"unpackedSize":35282,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4ddfCRA9TVsSAnZWagAA/yUQAIQ1T9ZzvihsPBhBQcYV\nDhNeColE9AOchl++/s3zEzFsV7zQg0ZhSvvKBnmWkNE3K3V4ktFaKpv4mb6w\nsbITxuv4NWmAKwtJgnaWFY2LcpS/nyR1UQ6v6CfdwuTMkfA9zdx91f6jVi5i\nDxTf6whIJaYzK9t7HGkfJ+2/2Rxx+B1PYyqblHm47G3vihCRKwK1fXaGnQxi\nrx7E18alnoXTEsmH07LJqhRIg71u3yTJu8Mvi8FU5xQL4uzWQ2qmf2MaF7tH\nH/FF1q/6l/gTrPM8cF72om2Vyjslbn1cLbVP9wl0Y/mOCuIUBdK8zW1k/rIn\nBViu8hn/jtd5nP5veRHM+uYzkkE5uL4a55EhDIDbHkNYiqrFXxdZjqS0fTxs\nzpa7K5CpW1wKNuudYqc0E+kzEO757/L8/wn472dkm6/n8Xss98QNBzaN2i+e\nlUmVJTODKFnI49kasvNOVLAgDqBkTWJ9LNEiaZ2EHmFnmVZKKl0O+eaVV7D9\nk8HHoPyYIGMF6j6HWsrIHITpnnb+v8gkGgWgdLt1fBm2qRGh42AZgvYgP0uX\nJJpNZ0WIQMe4e/iwCczyYcHqYwCEfZ3QhOznKMTkf4Hp9XcHj4bonk+25sXu\nmEZYyk9Ss7hzl4Teyk6QKMqp9+chRVAdU3HSLOEJ0KEXNsv/FChpNzG2Ck7Q\nZHET\r\n=wB1o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtTCcTgBFMnq496ifALb+oDR1hGSt1upIdWL1dHxVXIwIgObnwi59VyxWEPthgp5syqc4/K/Iq11zGpzwvvmuJJDM="}]},"_npmUser":{"name":"autocodingadmin","email":"jimtupper@autocodingsystems.com"},"directories":{},"maintainers":[{"name":"autocodingadmin","email":"jimtupper@autocodingsystems.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/x20-device_1.0.2_1608636255465_0.5928795165643712"},"_hasShrinkwrap":false},"1.0.3":{"name":"@autocodingsystems/x20-device","version":"1.0.3","description":"A framework for creating a generic device that the ACS X20 driver can talk to.","main":"lib/device.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"ACS"},"license":"ISC","dependencies":{"machina":"^4.0.2","nodemon":"^2.0.6"},"gitHead":"2c15bbf1db3fc521b5e42303eca3a7d6b058e55d","_id":"@autocodingsystems/x20-device@1.0.3","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-kvHRwAyLRc8uW2rC66agbeMvgK4OO8CeFNvAFp8OKCP6/ZAZjqRjOAVhF8qn1tHli/o/MsOhNwqb2ppZt1c/ng==","shasum":"53be66b97e2efdf8899525fa379dd957489a7156","tarball":"https://registry.npmjs.org/@autocodingsystems/x20-device/-/x20-device-1.0.3.tgz","fileCount":12,"unpackedSize":35341,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNRXvCRA9TVsSAnZWagAAmd8P/jw3DLcQmXO+vSXqMCKK\nHi2djYHB/TqdCFs9SUfK/RWojod2NuadSTBnszYYXyAZEAgq0Yqa8ZpPm95n\nPrkUZOjAkG4kcmBzgS4oxZqVHHoNhG2NJOrlvZkG1axAm8saekjV1Eix7Hx7\nzRR3NzhU+S+Ngt4oqjLRzj2cqN/q30LSg8n1ubcJhe4p4fVlUBNfG4flzOhR\nkIhTj/vmQSXdt4KiT+Z/shbcC1VQoFw7VVOZ4qT1/FaEmM97Wp3BJrXHgXuI\nY3zLEOxrhdQkjgMx4s/PVSTHloncitl/FB/RHyYiGVs6sgiHgX7plRcYfZur\nMHg/GlKBMcTEffEsbf28lNNhcK4iBSF4/cz2WLPAVWW4yoej2OxBPBM1lhv8\nxYmOV4HxVxhKw+bhG2eHpkk0mW3YsgDybJDnbXxT/CQwOboofxCpf0zU2hKm\nn4xn6ZJ3+bhxMd15FRujA9B51PmnZ4E4R2qAPvXcwXOxzDNyXoLYFF0wYSsL\ne67x/Xe5xKHYKeB9P0gXrZvJYPV2jWW/mKQ6Zj7PhvI9fSSW9bszIpd72peT\n042bnzLszlxFdVO/BcTnKBZdo+97l8PcyAZg94XB20odkjwYcjn6EcFi7kuW\nNaRXp++AUoGpwK8qWIlVccfYnuUCT8W7iFN9jq0MtlKgK+4Y1ahIrTsoWDqa\ndFUA\r\n=86PT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG4rbkKuf4bsZfOJM4n4N81u2sq1tySjHwyxmo6nTsu2AiEAvyucz4FqzVBlIcELhPi5CUe7TRfUnsDcsBF1Sit/Mns="}]},"_npmUser":{"name":"autocodingadmin","email":"jimtupper@autocodingsystems.com"},"directories":{},"maintainers":[{"name":"autocodingadmin","email":"jimtupper@autocodingsystems.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/x20-device_1.0.3_1614091758583_0.5790824240285091"},"_hasShrinkwrap":false},"1.0.4":{"name":"@autocodingsystems/x20-device","version":"1.0.4","description":"A framework for creating a generic device that the ACS X20 driver can talk to.","main":"lib/device.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"ACS"},"license":"ISC","dependencies":{"machina":"^4.0.2","nodemon":"^2.0.6"},"gitHead":"ab847773ad06c6d58bc18b34fb4eb3d0e919d60f","_id":"@autocodingsystems/x20-device@1.0.4","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-QX2Ki+CY6sUTzCRHHMSI77snII6gUkRAkbJXcV/QCzrm1U5AHwx6JiRu+gfp35aVLstoytltQ+tJM4o9igEdQw==","shasum":"2b68d60a9cbb25355da71289e39bd6e7af262249","tarball":"https://registry.npmjs.org/@autocodingsystems/x20-device/-/x20-device-1.0.4.tgz","fileCount":12,"unpackedSize":35341,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNRaLCRA9TVsSAnZWagAAaEoP/2Ac/gsvKT/AhkET+eXD\nGcBwUIMmzgSAARQc9QgJH9N1VKoSIVLZI+a+QWqlXDWMauaZIiEnkkdWyxoL\nterr1OzWsvuubwFJJEINIYqwoKn1FUyu1Q1WW9wibZxP32W4wG4qzjClXof8\nHIisK2h7VxyAMYr2tNeTFDYfRmsPIuaH0JFBLV/dYLC2iQVwJJ4mdmtmWhxw\nLxTfmgH82//oDAtjP+0x04iu/VBrBRw0I3A2E2JdNjuxAhu5eGkmgAqjuBWd\nsvWiowVxkM2wVRlXdYCxUP/fCbRGMTb0qxTc2+u16JnPrG4anHFxA+ga9ezo\nL6HcwgAzHWWAAMUVIzIEHyxIxexpStCR4MocCrITRc5Yuqr8mykG9pS/q8SB\nXEgds6gGI1c8reCgEOTvQTAU0Hi6MfYZiZhZ+TQptd4zt7FEJ1fm83RdVNF2\n4FVHLxdm0TIUguSvbrzoAZ4x1xXNIRHhY7+51OIMqGJQ18deJiFX52o2Xcts\n58zXoFOWiCS5iBypUaMXLxWG4W0I/yxSA/BhHMg8V+GtSZmDX52Df+xo79QI\nOtpsE3jheEoXCLv8NSlAx0xx90hgE3TWH2Ixt75fZYdWzvtDgUEalZraNbmz\n+c+/gKltB331laHIcwufhRyKptNB1fornT86Tdq4Du8IqXlSDmrYZZYNIKCS\nkxur\r\n=Vx3n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCx92in4Qn3xkMvWq2MaIiRGIK2mu2YJq5KIEoEw6W2awIgbBLxH/RMzMTT1Zbg7pQtZ+omgkkSCTVYqrtR3848mDE="}]},"_npmUser":{"name":"autocodingadmin","email":"jimtupper@autocodingsystems.com"},"directories":{},"maintainers":[{"name":"autocodingadmin","email":"jimtupper@autocodingsystems.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/x20-device_1.0.4_1614091915558_0.37437690240805943"},"_hasShrinkwrap":false}},"time":{"created":"2020-12-21T13:29:44.683Z","1.0.0":"2020-12-21T13:29:44.898Z","modified":"2022-04-04T16:35:52.685Z","1.0.1":"2020-12-21T16:19:16.797Z","1.0.2":"2020-12-22T11:24:15.592Z","1.0.3":"2021-02-23T14:49:18.738Z","1.0.4":"2021-02-23T14:51:55.666Z"},"maintainers":[{"name":"autocodingadmin","email":"jimtupper@autocodingsystems.com"}],"description":"A framework for creating a generic device that the ACS X20 driver can talk to.","author":{"name":"ACS"},"license":"ISC","readme":"x20 Emulation\r\n=============\r\n\r\n# Installation\r\n\r\n```\r\nnpm install --save @autocodingsystems/x20-emulation\r\n```\r\n\r\n# Quickstart\r\n\r\nA fully featured x20 device implementation.\r\n\r\n```js\r\nconst server = require('net').createServer()\r\nconst device = require('@autocodingsystems/x20-device')(server)\r\ndevice.on('connection', (connectiontodriver) => {\r\n    connectiontodriver.on('error', (err) => { console.log('ERROR: ', err) })\r\n    connectiontodriver.on('close', (had_error) => { console.log('CLOSED with error', had_error) });\r\n});\r\ndevice.on('connectionstatusmode', (connectionstatusmode) => { console.log('Connection Status Mode', connectionstatusmode) })\r\ndevice.on('outputchanged', (data) => { console.log('Output changed', data.outputid, data.state) })\r\ndevice.on('counterreset', (data) => { console.log('Counter reset', data) })\r\nserver.listen(12000)\r\n```\r\n\r\nSending data back to the driver\r\n\r\n```js\r\nconst server = require('net').createServer()\r\nconst device = require('@autocodingsystems/x20-device')(server)\r\ndevice.on('connection', (connectiontodriver) => {\r\n    connectiontodriver.on('error', (err) => { console.log('ERROR: ', err) })\r\n    connectiontodriver.on('close', (had_error) => { console.log('CLOSED with error', had_error) });\r\n});\r\nserver.listen(12000)\r\n\r\ndevice.inputs[0].setAutoCount(true)\r\nlet flipflop = true\r\nsetInterval(() => { device.inputs[0].setState(flipflop = !flipflop) }, 1000)\r\nsetTimeout(() => { device.errors.push('Custom error'); device.setDirty() }, 60000)\r\nsetTimeout(() => { device.errors.pop(); device.setDirty() }, 90000)\r\n```\r\n","readmeFilename":"README.md"}