/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.freedomotic.plugins.devices.i2c; /** * * @author matteo */ public class Board { private String alias; private int address; private int devNum; private int lineStatus[]; public Board(int address, int devNum, String alias) { this.address = address; this.alias = alias; this.devNum = devNum; lineStatus = new int[devNum]; } public int getLineStatus(int line) { return lineStatus[line]; } // return 1 if old valu and new value differ public boolean setLineStatus(int line, int val) { int oldval = lineStatus[line]; lineStatus[line] = val; return (oldval != val); } public void setStatus(byte globVal) { int val = 0; for (int i = 0; i < 8; i++) { val = (globVal >> i) & 0x0001; //extract i-pos bit of byte setLineStatus(i, val); } } public int getAddress() { return address; } public String getAlias() { return alias; } public byte toBeWritten(int line, int val) { int output = 0; for (int i = 0; i < 8; i++) { int locval = (line == i) ? ((val == -1) ? 1 - lineStatus[i] : val) : lineStatus[i]; output += (locval & 0x0001) << i; } return (byte) (output & 0x07); } }