카테고리 없음
안드로이드 COM포트
안녕1999
2019. 9. 20. 08:31
안드로이드는 리눅스에서 돌아간다.
리눅스에서는 COM 포트를 /dev/ttySx 처럼 구분한다.
Windows Com Port Linux equivalent
COM 1 /dev/ttyS0
COM 2 /dev/ttyS1
COM 3 /dev/ttyS2
https://stackoverflow.com/questions/11011515/how-to-read-and-write-data-to-com-serial-ports-in-android
//장치찾는 방법
mDrivers = new Vector<Driver>(); LineNumberReader r = new LineNumberReader(new FileReader("/proc/tty/drivers")); String l;
while ((l = r.readLine()) != null)
{
String drivername = l.substring(0, 0x15).trim();
String[] w = l.split(" +");
if ((w.length >= 5) && (w[w.length - 1].equals("serial")))
{
mDrivers.add(new
Driver(drivername, w[w.length - 4]));
}
}
리눅스는 파일 입출력을 한다
//파일생성
mDevices = new Vector<File>();
File dev = new File("/dev");
File[] files = dev.listFiles();
if (files != null)
{
int i;
for (i = 0; i < files.length; i++)
{
if(files[i].getAbsolutePath().startsWith(mDeviceRoot))
{
Log.d(TAG, "Found new device: " + files[i]);
mDevices.add(files[i]);
}
}
}
//드라이버 생성
public Driver(String name, String root)
{
mDriverName = name;
mDeviceRoot = root;
}
//COM포트 open, write
int baurate = Integer.parseInt("9600");
mSerialPort = new SerialPort(mDevice.getPath(), baurate, 0);
mOutputStream = mSerialPort.getOutputStream();
byte[] bytes = hexStr2bytes("31CE");
mOutputStream.write(bytes);
리눅스에서는 COM 포트를 /dev/ttySx 처럼 구분한다.
Windows Com Port Linux equivalent
COM 1 /dev/ttyS0
COM 2 /dev/ttyS1
COM 3 /dev/ttyS2
https://stackoverflow.com/questions/11011515/how-to-read-and-write-data-to-com-serial-ports-in-android
//장치찾는 방법
mDrivers = new Vector<Driver>(); LineNumberReader r = new LineNumberReader(new FileReader("/proc/tty/drivers")); String l;
while ((l = r.readLine()) != null)
{
String drivername = l.substring(0, 0x15).trim();
String[] w = l.split(" +");
if ((w.length >= 5) && (w[w.length - 1].equals("serial")))
{
mDrivers.add(new
Driver(drivername, w[w.length - 4]));
}
}
리눅스는 파일 입출력을 한다
//파일생성
mDevices = new Vector<File>();
File dev = new File("/dev");
File[] files = dev.listFiles();
if (files != null)
{
int i;
for (i = 0; i < files.length; i++)
{
if(files[i].getAbsolutePath().startsWith(mDeviceRoot))
{
Log.d(TAG, "Found new device: " + files[i]);
mDevices.add(files[i]);
}
}
}
//드라이버 생성
public Driver(String name, String root)
{
mDriverName = name;
mDeviceRoot = root;
}
//COM포트 open, write
int baurate = Integer.parseInt("9600");
mSerialPort = new SerialPort(mDevice.getPath(), baurate, 0);
mOutputStream = mSerialPort.getOutputStream();
byte[] bytes = hexStr2bytes("31CE");
mOutputStream.write(bytes);