Skip to content

Commit

Permalink
Merge branch 'master' into next_work3Merge
Browse files Browse the repository at this point in the history
  • Loading branch information
taartspi authored Jan 18, 2025
2 parents 82da87c + 6e66a5e commit bc0c058
Show file tree
Hide file tree
Showing 12 changed files with 2,284 additions and 284 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ The following lists the currently supported devices within this project:
* [1602A LCD HD44780U](src/main/java/com/pi4j/devices/hd44780u_lcd1602a/README.md): App uses SN74HC595 to control the LCD
* [1602A LCD MCP23017 I2C Controller](src/main/java/com/pi4j/devices/mcp23017_lcd1602a/README.md): App uses MCP23017 to control the LCD
* [1602A_LCD_PCF8574A I2C Controller](src/main/java/com/pi4j/devices/pcf8574a_lcd1602a/README.md): App uses PCF8574A to control the LCD
* [ADS1256 24bit A-to-D](src/main/java/com/pi4j/devices/ads1256/README.md) (1)
* [ADS1255/ADS1256 24bit A-to-D](src/main/java/com/pi4j/devices/ads1256/README.md) (1)
* [AT24C512 SEEPROM](src/main/java/com/pi4j/devices/at24c512/README.md) (1) (2)
* [BMP280 Temperature and Pressure Sensor](src/main/java/com/pi4j/devices/bmp280/README.md) (1)
* [BME280 Temperature, Pressure and Humidity Sensor (I2C & SPI)](src/main/java/com/pi4j/devices/bme280/README.md) (1)(3)
Expand Down
65 changes: 65 additions & 0 deletions src/main/java/com/pi4j/devices/ads1256/ADS1255.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/*
*
*
* *
* * -
* * #%L
* * **********************************************************************
* * ORGANIZATION : Pi4J
* * PROJECT : Pi4J :: EXTENSION
* * FILENAME : ADS1255.java
* *
* * This file is part of the Pi4J project. More information about
* * this project can be found here: https://pi4j.com/
* * **********************************************************************
* * %%
* * * Copyright (C) 2012 - 2024 Pi4J
* * %%
* *
* * Licensed under the Apache License, Version 2.0 (the "License");
* * you may not use this file except in compliance with the License.
* * You may obtain a copy of the License at
* *
* * http://www.apache.org/licenses/LICENSE-2.0
* *
* * Unless required by applicable law or agreed to in writing, software
* * distributed under the License is distributed on an "AS IS" BASIS,
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* * See the License for the specific language governing permissions and
* * limitations under the License.
* * #L%
* *
*
*
*
*/

package com.pi4j.devices.ads1256;

import com.pi4j.context.Context;
import com.pi4j.io.spi.SpiBus;
import com.pi4j.io.spi.SpiChipSelect;
import com.pi4j.util.Console;

public final class ADS1255 extends AbstractADS125x {

@SuppressWarnings("exports")
public ADS1255(Context pi4j, SpiBus spiBus, SpiChipSelect chipSelect,
boolean reset, int drdyPin, int csPin, int rstPin,
boolean crtRstGpio, int pdwnPin, boolean crtPdwnGpio,
Console console, String traceLevel, double vref, DataRate sampleRate, boolean useBuffer)
throws InterruptedException {
super(pi4j, spiBus, chipSelect, reset, drdyPin, csPin, rstPin, crtRstGpio,
pdwnPin, crtPdwnGpio, console, traceLevel, vref, sampleRate, useBuffer);
}

@Override
public int getNumGpioPins() {
return 2;
}

@Override
public int getNumAnalogPins() {
return 2;
}
}//end ADS1255
170 changes: 3 additions & 167 deletions src/main/java/com/pi4j/devices/ads1256/ADS1256.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
* * this project can be found here: https://pi4j.com/
* * **********************************************************************
* * %%
* * * Copyright (C) 2012 - 2022 Pi4J
* * * Copyright (C) 2012 - 2024 Pi4J
* * %%
* *
* * Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -37,17 +37,10 @@
package com.pi4j.devices.ads1256;

import com.pi4j.context.Context;
import com.pi4j.io.exception.IOException;
import com.pi4j.io.gpio.digital.DigitalInput;
import com.pi4j.io.gpio.digital.DigitalOutput;
import com.pi4j.io.gpio.digital.DigitalState;
import com.pi4j.io.spi.Spi;
import com.pi4j.io.spi.SpiBus;
import com.pi4j.io.spi.SpiChipSelect;
import com.pi4j.io.spi.SpiMode;
import com.pi4j.util.Console;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class ADS1256 {

Expand Down Expand Up @@ -609,161 +602,4 @@ private int doRDATA() throws InterruptedException {
return read;

}


private short mapDrateString(String name) {
ADS1256_DRATE[] drateMap = ADS1256_DRATE.values();
int posPin = 0xff;
for (ADS1256_DRATE col : drateMap) {
// Calling ordinal() to find index
// of drate.
if (col.toString().contentEquals(name)) {
posPin = col.ordinal();
this.logger.trace(" drate : " + name + " No : " + ADS1256_DRATE_E[posPin]);
break;
}
}
return (short) (ADS1256_DRATE_E[posPin] & 0xff);
}

private short mapGainString(String name) {
ADS1256_GAIN[] drateMap = ADS1256_GAIN.values();
int posPin = 0xff;
for (ADS1256_GAIN col : drateMap) {
// Calling ordinal() to find index
// of Gain name.
if (col.toString().contentEquals(name)) {
posPin = col.ordinal();
this.logger.trace(" gain : " + name + " No : " + posPin);
break;
}
}
return (short) (posPin & 0xff);
}

public DigitalState readGpio(int pin) {
this.logger.trace(">>> Enter readGpio pin " + pin);
DigitalState rval = DigitalState.UNKNOWN;
byte regVal = this.readRegData(ADS1256_Declares.REG_IO);
if (this.isPinInput(pin, regVal)) {
rval = this.getPinState(pin, regVal);
}
this.logger.trace("<<< Exit readGpio State" + rval);
return (rval);
}

public boolean setGpioDirOut(int pin) {
this.logger.trace(">>> Enter setGpioDirOut pin " + pin);
boolean rval = false;
// this.logger.trace("ADCON" + this.readRegData(ADS1256_Declares.REG_ADCON));
byte regVal = this.readRegData(ADS1256_Declares.REG_IO);
regVal &= ~(0x10 << pin) & 0xff;
this.writeReg(ADS1256_Declares.REG_IO, regVal);
rval = true;
this.logger.trace("<<< Exit setGpioDirOut " + rval);
return (rval);
}

public boolean setGpioDirIn(int pin) {
this.logger.trace(">>> Enter setGpioDirIn pin " + pin);
boolean rval = false;
byte regVal = this.readRegData(ADS1256_Declares.REG_IO);
regVal |= (0x10 << pin) & 0xff;
this.writeReg(ADS1256_Declares.REG_IO, regVal);
this.logger.trace("<<< Exit setGpioDirIn State" + rval);
rval = true;
return (rval);
}

private DigitalState getPinState(int pin, byte registerVal) {
DigitalState rval = DigitalState.UNKNOWN;
this.logger.trace(">>> Enter isPinInput pin: " + pin);
if ((registerVal & (0x01 << pin)) == 0) {
rval = DigitalState.LOW;
} else {
rval = DigitalState.HIGH;
}
this.logger.trace(" Exit isPinInput ");
return (rval);
}

public boolean setGpio(int pin, DigitalState newState) {
this.logger.trace(">>> Enter setGpio pin " + pin + " state : " + newState);
boolean rval = false;
byte regVal = this.readRegData(ADS1256_Declares.REG_IO);
if (this.isPinOutput(pin, regVal)) {
rval = this.setPinState(pin, newState, regVal);
} else {
this.logger.trace("Pin " + pin + " not configured for output");
}
this.logger.trace("<<< Exit setGpio " + rval);
return (rval);
}

private boolean setPinState(int pin, DigitalState newState, byte registerVal) {
boolean rval = false;
this.logger.trace(">>> Enter setPinState pin: " + pin + " state: " + newState);
if (newState == DigitalState.HIGH) {
registerVal |= (1 << pin);
rval = true;
} else {
registerVal &= ~(1 << pin);
rval = true;
}
this.writeReg(ADS1256_Declares.REG_IO, registerVal);
this.logger.trace(" Exit setPinState " + rval);
return (rval);
}

private boolean isPinInput(int pin, byte registerVal) {
boolean rval = false;
this.logger.trace(">>> Enter isPinInput pin: " + pin);
if ((registerVal & (0x10 << pin)) > 0) {
rval = true;
}
this.logger.trace(" Exit isPinInput " + rval);
return (rval);
}

private boolean isPinOutput(int pin, byte registerVal) {
boolean rval = false;
this.logger.trace(">>> Enter isPinOutput pin: " + pin);
if ((registerVal & (0x10 << pin)) == 0) {
rval = true;
}
this.logger.trace(" Exit isPinOutput " + rval);
return (rval);
}


// SPI device
// public SpiDevice spi;

// ADC channel count
// file
private Spi spi;
private final Console console;
private final String traceLevel;
private final Logger logger;

private double vref = 2.5;
private final SpiChipSelect chipSelect;
private final SpiBus spiBus;

private final Context pi4j;
private boolean resetChip = false;

private DigitalInput drdyGpio;
private final int drdyPinNum; // 17
private DigitalOutput csGpio;
private final int csPinNum; // 22

private DigitalOutput rstGpio;
private final int rstPinNum; // 18
private boolean crtRstGpio = false;
private DigitalOutput pdwnGpio;

private final int pdwnPinNum; // 27
private boolean crtPdwnGpio = false;
}

}//end ADS1256
Loading

0 comments on commit bc0c058

Please sign in to comment.