Porting Google's official serial port library android-serialport-api,only supports serial port name and baud rate. This item adds support check digit, data bit, stop bit, flow control configuration item.
- Open your root
build.gradle
and addmavenCentral()
:
allprojects {
repositories {
...
mavenCentral()
}
}
- To add a dependency to your project, specify a dependency configuration such as implementation in the dependencies block of your module's build.gradle file.
dependencies {
implementation 'io.github.xmaihh:serialport:2.1.1'
}
Attributes | parameter |
---|---|
Baud rate | BAUDRATE |
Data bit | 5,6,7,8 ; default value 8 |
Parity bit | No parity (NONE), odd parity (ODD), even parity (EVEN), 0 parity(SPACE), 1 parity(MARK); default no parity |
Stop bit | 1,2 ; default value 1 |
Flow Control | No flow control (NONE), hardware flow control (RTS/CTS), software flow control (XON/XOFF); flow control is not used by default |
serialPortFinder.getAllDevicesPath();
serialHelper.setPort(String sPort); //set serial port
serialHelper.setBaudRate(int iBaud); //set baud rate
serialHelper.setStopBits(int stopBits); //set stop bit
serialHelper.setDataBits(int dataBits); //set data bit
serialHelper.setParity(int parity); //set parity
serialHelper.setFlowCon(int flowcon); //set flow control
Serial port property settings must be set before the function 'open()' is executed.
serialHelper.open();
serialHelper.close();
serialHelper.send(byte[] bOutArray); // send byte[]
serialHelper.sendHex(String sHex); // send Hex
serialHelper.sendTxt(String sTxt); // send ASCII
@Override
protected void onDataReceived(final ComBean comBean) {
Toast.makeText(getBaseContext(), new String(comBean.bRec, "UTF-8"), Toast.LENGTH_SHORT).show();
}
Support sticky package processing, the reason is seen in the issues#1 , the provided sticky package processing
- Not processed (default)
- First and last special character processing
- Fixed length processing
- Dynamic length processing
Supports custom sticky packet processing.
The first step is to implement the AbsStickPackageHelper interface.
/**
* Accept the message, the helper of the sticky packet processing, return the final data through inputstream, need to manually process the sticky packet, and the returned byte[] is the complete data we expected.
* Note: This method will be called repeatedly until it resolves to a complete piece of data. This method is synchronous, try not to do time-consuming operations, otherwise it will block reading data.
*/
public interface AbsStickPackageHelper {
byte[] execute(InputStream is);
}
Set sticky package processing
serialHelper.setStickPackageHelper(AbsStickPackageHelper mStickPackageHelper);
PC-side debugging tools Serial debugging tool for Win
- Add support for setting parity: 0 parity(SPACE), 1 parity(MARK)
- Added support for setting custom baud rate issues#26
- Fix bug.issues#17
- Migrate to MavenCentral
- Add support settings to receive data sticky packet processing, support for setting custom sticky packet processing
- Add support for setting parity, data bits, stop bits, flow control configuration items
- Basic function, serial port set serial port number, baud rate, send and receive data
This library does not provide ROOT permissions, please open the serial port '666' permissions yourself.
adb shell chmod 666 /dev/ttyS1
Please do contribute! Issues and pull requests are welcome.
Thank you for your help improving software one changelog at a time!