/* * * */ import { MCP230XXi } from '../src' import { MCP230XX } from '../src' const BUS_HOST = 'sbc' const BUS_PORT = 1776 // 1776 is default port for i2c-bus module const SW_ADDRESS = 0x25 // 1776 is default port for i2c-bus module const RY_ADDRESS = 0x27 // 1776 is default port for i2c-bus module // let chip8 = new MCP230XX({id:'mcp8-27', address:0x27, nmcp: { path: '/opt/sockets/mcp2.sock' }}) // let sw17 = new MCP230XXi([9,10],{id:'sw17', chip17:true, host:BUS_HOST, address:SW_ADDRESS, iport:9000, 10:{mport:'B'}}) let sw17 = new MCP230XXi([9,10],{id:'sw17', chip17:true, host:BUS_HOST, address:SW_ADDRESS+1, iport:true, 10:{mport:'B'}}) let sw8 = new MCP230XXi([24],{id:'sw8', host:BUS_HOST, address:SW_ADDRESS, iport:true}) let ry8 = new MCP230XX({id:'ry8', host:BUS_HOST, address:RY_ADDRESS}) sw17.reply = () => {} ry8.reply = () => {} sw8.reply = () => {} function iprocess(details) { console.log('--common interrupt processor--') console.log(details) action(details) } async function action (details) { if (details.id === 'sw17') { await ry8.pin.state.toggle({pins:details.pin}) } if (details.id === 'sw8') { if (details.pin===1) { if (details.state==='off') await ry8.pin.state.off({pins:'all'}) else ry8.pin.state.on({pins:'all'}) } if (details.pin===8) { if (details.state==='off') await ry8.pin.state.off({pins:'1,3,5,7'}) else await ry8.pin.state.on({pins:'1,3,5,7'}) } } } (async () => { await sw17.init() let cfg = {port:'B',pins:'1', cfg:'toggle_switch_pulldown'} console.log(await sw17.pin.cfg(cfg)) sw17.interruptProcessor(iprocess) await sw8.init() sw8.interruptProcessor(iprocess) await ry8.init() let packet = {pins:'all', cfg:'output'} await ry8.pin.cfg(packet) })().catch(err => { console.error('FATAL: UNABLE TO START SYSTEM!\n',err) })