// import Base from '@uci/base' import Base from '../../uci-base/src/base' import pin from './pin' import _ from '@uci/utils/src/byte' import logger from '../../uci-logger/src/logger' let log = {} const LOG_OPTS = { repo:'uci-mcp', npm:'@uci/mcp', file:'src/mcp230xx-packet.mjs', class:'MCP230XX', id:this.id, instance_created:new Date().getTime() } export default class MCP230XX extends Base { constructor(opts) { log = logger.child(LOG_OPTS) if (opts.bus) { if (opts.bus.host) { opts.bus.socket = 'bus#c>t' opts.bus.port = opts.bus.port || 1776 } if (opts.bus.path) opts.bus.socket = 'bus#c>n' } else { opts.bus = { path : (process.env.SOCKETS_DIR || __dirname) + '/i2c-bus.sock' } opts.bus.socket = 'bus#c>n' } opts.nmcp = opts.nmcp || {path: (process.env.SOCKETS_DIR || __dirname) + '/mcp.sock'} opts.sockets = 'nmcp#s>n,tmcp#s>t,'+ opts.bus.socket console.log(opts) super(opts) if (!opts.address) log.fatal({opts:opts},'no i2c bus address supplied' ) this.address = opts.address this.pin = pin this.busSend = this.busSend.bind(this) } async init(){ await super.init() } async busSend(packet) { return await this.socket.bus.send(packet)} reply (packet) { console.log('in bus reply', packet) // this.emit('bus', packet) this.emit(packet.id, packet) } // setBusListener(packet) { // // this.on(packet.cmd+Math.random().toString().slice(1)) // } } // end of MCP230XX Class