Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
Line 10: Line 10:
 
|
 
|
 
<syntaxhighlight lang="java">
 
<syntaxhighlight lang="java">
int openSerialPortEx(
+
int open(
String devName,
+
String devName
long baud,
+
, int flags)
int dataBits,
+
int stopBits,
+
String parityBit,
+
String flowCtrl
+
)
+
 
</syntaxhighlight>
 
</syntaxhighlight>
 
||
 
||
 
参数说明:<br />
 
参数说明:<br />
devName: 串口设备文件名,可选的值有:<br />
+
devName: 要写入数据的<br />
/dev/ttyS4<br />
+
flags: 打开文件的方式,例如可读可写还是只读打开,可选值需参考 FileCtlEnum.java<br />
baud:   波特率 <br />
+
<br />
dataBits: 数据位 (取值 5~8,一般用8 )<br />
+
stopBits: 停止位 (取值 1~2,一般用1 )<br />
+
parityBit: 奇偶校验位(取值为单个字母,O表示奇校验,E表示偶校验,N表示无校验)<br />
+
flowCtrl: 数据流控制(取值为单个字母,H表示硬件流控制,S表示软件流控制,N表示不使用数据流控制)<br />
+
 
返回值说明:<br />
 
返回值说明:<br />
成功打开串口时,将返回串口的文件描述符,用该描述符可进行 read、write和select等操作,如果打开失败,则返回 -1<br />
+
成功返回文件描述符,出错返回-1。<br />
 
||
 
||
打开指定的串口设备,并返回文件描述符。
+
打开设备。
 
|-
 
|-
  
Line 37: Line 28:
 
|
 
|
 
<syntaxhighlight lang="java">
 
<syntaxhighlight lang="java">
int openSerialPortEx(
+
int ioctlWithIntValue (
String devName,
+
int fd,
long baud,
+
int cmd,
int dataBits,
+
int value)
int stopBits,
+
String parityBit,
+
String flowCtrl
+
)
+
 
</syntaxhighlight>
 
</syntaxhighlight>
 
||
 
||
 
参数说明:<br />
 
参数说明:<br />
devName: 串口设备文件名,可选的值有:<br />
+
fd:设备文件描述符<br />
/dev/ttyS4<br />
+
cmd: ioctl命令<br />
baud:   波特率 <br />
+
value:命令参数,限整数<br />
dataBits: 数据位 (取值 5~8,一般用8 )<br />
+
<br />
stopBits: 停止位 (取值 1~2,一般用1 )<br />
+
parityBit: 奇偶校验位(取值为单个字母,O表示奇校验,E表示偶校验,N表示无校验)<br />
+
flowCtrl: 数据流控制(取值为单个字母,H表示硬件流控制,S表示软件流控制,N表示不使用数据流控制)<br />
+
 
返回值说明:<br />
 
返回值说明:<br />
成功打开串口时,将返回串口的文件描述符,用该描述符可进行 read、write和select等操作,如果打开失败,则返回 -1<br />
+
成功返回0,出错返回-1。<br />
 
||
 
||
打开指定的串口设备,并返回文件描述符。
+
执行设备的ioctl操作
 
|-
 
|-
  
Line 65: Line 49:
 
|
 
|
 
<syntaxhighlight lang="java">
 
<syntaxhighlight lang="java">
int openSerialPortEx(
+
int write(
String devName,
+
int fd,
long baud,
+
byte[] data)
int dataBits,
+
int stopBits,
+
String parityBit,
+
String flowCtrl
+
)
+
 
</syntaxhighlight>
 
</syntaxhighlight>
 
||
 
||
 
参数说明:<br />
 
参数说明:<br />
devName: 串口设备文件名,可选的值有:<br />
+
fd: 要写入数据的文件描述符<br />
/dev/ttyS4<br />
+
data: 要写入的数据<br />
baud:   波特率 <br />
+
<br />
dataBits: 数据位 (取值 5~8,一般用8 )<br />
+
stopBits: 停止位 (取值 1~2,一般用1 )<br />
+
parityBit: 奇偶校验位(取值为单个字母,O表示奇校验,E表示偶校验,N表示无校验)<br />
+
flowCtrl: 数据流控制(取值为单个字母,H表示硬件流控制,S表示软件流控制,N表示不使用数据流控制)<br />
+
 
返回值说明:<br />
 
返回值说明:<br />
成功打开串口时,将返回串口的文件描述符,用该描述符可进行 read、write和select等操作,如果打开失败,则返回 -1<br />
+
成功返回写入的字节数,出错返回-1。<br />
 
||
 
||
打开指定的串口设备,并返回文件描述符。
+
向打开的设备或文件中写数据。
 +
|-
 +
 
 +
 
 +
|-
 +
|
 +
<syntaxhighlight lang="java">
 +
int ioctlWithIntValue (
 +
int fd,
 +
int cmd,
 +
int value)
 +
</syntaxhighlight>
 +
||
 +
参数说明:<br />
 +
fd:设备文件描述符<br />
 +
cmd: ioctl命令<br />
 +
value:命令参数,限整数<br />
 +
<br />
 +
返回值说明:<br />
 +
成功返回0,出错返回-1。<br />
 +
||
 +
执行设备的ioctl操作
 +
|-
 +
 
 +
|-
 +
|
 +
<syntaxhighlight lang="java">
 +
int read(
 +
int fd,
 +
byte[] buf,
 +
int len)
 +
</syntaxhighlight>
 +
||
 +
参数说明:<br />
 +
fd: 要读出数据的文件描述符<br />
 +
buf: 存储数据的缓冲区<br />
 +
len: 要读取的字节数<br />
 +
<br />
 +
返回值说明:<br />
 +
成功返回读取的字节数,出错返回-1,如果在调read之前已到达文件末尾,则这次read返回0。<br />
 +
||
 +
从打开的设备或文件中读取数据。
 +
|-
 +
 
 +
|-
 +
|
 +
<syntaxhighlight lang="java">
 +
int select(
 +
int fd,
 +
int sec,
 +
int usec)
 +
</syntaxhighlight>
 +
||
 +
参数说明:<br />
 +
fd: 要查询的文件描述符<br />
 +
sen: 阻塞等待数据多长时间(单位:秒)<br />
 +
usec: 阻塞等待数据多长时间 (单位:纳秒,1毫秒=1000纳秒)<br />
 +
<br />
 +
返回值说明:<br />
 +
如果fd有数据可读,返回1, 如果没有数据可读,返回0,出错时返回-1。<br />
 +
||
 +
查询打开的设备或文件是否有数据可读。
 +
|-
 +
 
 +
|-
 +
|
 +
<syntaxhighlight lang="java">
 +
void close(int fd)
 +
</syntaxhighlight>
 +
||
 +
参数说明:<br />
 +
fd: 要关闭的文件描述符<br />
 +
<br />
 +
返回值说明:<br />
 +
无<br />
 +
||
 +
关闭指定的文件描述符
 
|-
 
|-
  
  
 
|}
 
|}
=== Serial port ===
+
=== 串口通讯的接口说明 ===
 
::{| class="wikitable"
 
::{| class="wikitable"
 
|-
 
|-
Line 122: Line 173:
 
||
 
||
 
打开指定的串口设备,并返回文件描述符。
 
打开指定的串口设备,并返回文件描述符。
 +
|-
 +
|}
 +
接口的使用说明:<br />
 +
<br />
 +
先通过调用openSerialPortEx 打开串口设备,然后可以在线程中、或者用 timer 通过调用 select 接口轮询串口设备是否有数据到来,如果有,则调用 read 接口读取数据。<br />
 +
<br />
 +
要往串口中写入数据,调用 write 接口即可。<br />
 +
串口使用完毕后,需要调用 close 关闭串口。<br />
 +
<br />
 +
 +
=== 开关LED的接口说明 ===
 +
::{| class="wikitable"
 +
|-
 +
| style="background: PaleTurquoise; color: black" | '''接口名称'''
 +
| style="background: PaleTurquoise; color: black" |'''参数与返回值说明'''
 +
| style="background: PaleTurquoise; color: black" |'''功能说明'''
 +
|-
 +
|
 +
<syntaxhighlight lang="java">
 +
int setLedState(
 +
int ledID,
 +
int ledState )
 +
</syntaxhighlight>
 +
||
 +
参数说明:<br />
 +
ledID: 指定要开关哪一个LED (取值0~3)<br />
 +
ledState: 1表示亮,0表示灭<br />
 +
<br />
 +
返回值说明:<br />
 +
成功返回0,失败返回-1<br />
 +
||
 +
该接口用于开关LED灯。
 +
|-
 +
|}
 +
 +
=== 让PWM蜂鸣器发声和停止发声的接口说明 ===
 +
::{| class="wikitable"
 +
|-
 +
| style="background: PaleTurquoise; color: black" | '''接口名称'''
 +
| style="background: PaleTurquoise; color: black" |'''参数与返回值说明'''
 +
| style="background: PaleTurquoise; color: black" |'''功能说明'''
 +
|-
 +
|
 +
<syntaxhighlight lang="java">
 +
int PWMPlay(int frequency);
 +
</syntaxhighlight>
 +
||
 +
参数说明:<br />
 +
frequency: 要发声的频率<br />
 +
<br />
 +
返回值说明:<br />
 +
成功返回0,失败返回-1<br />
 +
||
 +
按指定的频率让蜂鸣器发声
 +
|-
 +
 +
|-
 +
|
 +
<syntaxhighlight lang="java">
 +
int PWMStop();
 +
</syntaxhighlight>
 +
||
 +
参数说明:<br />
 +
无<br />
 +
<br />
 +
返回值说明:<br />
 +
成功返回0,失败返回-1<br />
 +
||
 +
让蜂鸣器停止发声
 +
|-
 +
|}
 +
 +
=== 读取ADC的转换结果的接口说明 ===
 +
::{| class="wikitable"
 +
|-
 +
| style="background: PaleTurquoise; color: black" | '''接口名称'''
 +
| style="background: PaleTurquoise; color: black" |'''参数与返回值说明'''
 +
| style="background: PaleTurquoise; color: black" |'''功能说明'''
 +
|-
 +
|
 +
<syntaxhighlight lang="java">
 +
int readADC()
 +
</syntaxhighlight>
 +
||
 +
参数说明:<br />
 +
无<br />
 +
<br />
 +
返回值说明:<br />
 +
成功返回ADC转换的结果,失败返回-1<br />
 +
||
 +
读取第一个通道的ADC转换结果
 +
|-
 +
 +
|-
 +
|
 +
<syntaxhighlight lang="java">
 +
int readADCWithChannel(int channel)
 +
</syntaxhighlight>
 +
||
 +
参数说明:<br />
 +
channel: 读取指定通道的ADC的值<br />
 +
<br />
 +
返回值说明:<br />
 +
成功返回ADC转换的结果,失败返回-1<br />
 +
||
 +
读取指定通道的ADC转换的结果
 +
|-
 +
 +
|-
 +
|
 +
<syntaxhighlight lang="java">
 +
int[] readADCWithChannels(int[] channels);
 +
</syntaxhighlight>
 +
||
 +
参数说明:<br />
 +
channels: 要读取通道的ADC频道数组<br />
 +
<br />
 +
返回值说明:<br />
 +
成功返回多个ADC结果(数组),错误返回空<br />
 +
||
 +
一次性读取多个频道的结果,性能好
 
|-
 
|-
 
|}
 
|}

Revision as of 05:59, 22 October 2018

1 函数库(libfriendlyarm-hardware.so)接口说明

在应用层,可透过上一章节中的HardwareControler类来调用libfriendlyarm-hardware.so库中的接口,下面中列出HardwareControler类中的接口的定义,这些接口都是类方法,因此不需要创建HardwareControler对象实例:

1.1 通用的输入输出接口

接口名称 参数与返回值说明 功能说明
int open(
String devName
, int flags)

参数说明:
devName: 要写入数据的
flags: 打开文件的方式,例如可读可写还是只读打开,可选值需参考 FileCtlEnum.java

返回值说明:
成功返回文件描述符,出错返回-1。

打开设备。

int ioctlWithIntValue (
int fd,
int cmd,
int value)

参数说明:
fd:设备文件描述符
cmd: ioctl命令
value:命令参数,限整数

返回值说明:
成功返回0,出错返回-1。

执行设备的ioctl操作

int write(
int fd,
byte[] data)

参数说明:
fd: 要写入数据的文件描述符
data: 要写入的数据

返回值说明:
成功返回写入的字节数,出错返回-1。

向打开的设备或文件中写数据。

int ioctlWithIntValue (
int fd,
int cmd,
int value)

参数说明:
fd:设备文件描述符
cmd: ioctl命令
value:命令参数,限整数

返回值说明:
成功返回0,出错返回-1。

执行设备的ioctl操作

int read(
int fd, 
byte[] buf, 
int len)

参数说明:
fd: 要读出数据的文件描述符
buf: 存储数据的缓冲区
len: 要读取的字节数

返回值说明:
成功返回读取的字节数,出错返回-1,如果在调read之前已到达文件末尾,则这次read返回0。

从打开的设备或文件中读取数据。

int select(
int fd, 
int sec, 
int usec)

参数说明:
fd: 要查询的文件描述符
sen: 阻塞等待数据多长时间(单位:秒)
usec: 阻塞等待数据多长时间 (单位:纳秒,1毫秒=1000纳秒)

返回值说明:
如果fd有数据可读,返回1, 如果没有数据可读,返回0,出错时返回-1。

查询打开的设备或文件是否有数据可读。

void close(int fd)

参数说明:
fd: 要关闭的文件描述符

返回值说明:

关闭指定的文件描述符

1.2 串口通讯的接口说明

接口名称 参数与返回值说明 功能说明
int openSerialPortEx(
String devName,
long baud,
int dataBits,
int stopBits,
String parityBit,
String flowCtrl
)

参数说明:
devName: 串口设备文件名,可选的值有:
/dev/ttyS4
baud: 波特率
dataBits: 数据位 (取值 5~8,一般用8 )
stopBits: 停止位 (取值 1~2,一般用1 )
parityBit: 奇偶校验位(取值为单个字母,O表示奇校验,E表示偶校验,N表示无校验)
flowCtrl: 数据流控制(取值为单个字母,H表示硬件流控制,S表示软件流控制,N表示不使用数据流控制)
返回值说明:
成功打开串口时,将返回串口的文件描述符,用该描述符可进行 read、write和select等操作,如果打开失败,则返回 -1

打开指定的串口设备,并返回文件描述符。

接口的使用说明:

先通过调用openSerialPortEx 打开串口设备,然后可以在线程中、或者用 timer 通过调用 select 接口轮询串口设备是否有数据到来,如果有,则调用 read 接口读取数据。

要往串口中写入数据,调用 write 接口即可。
串口使用完毕后,需要调用 close 关闭串口。

1.3 开关LED的接口说明

接口名称 参数与返回值说明 功能说明
int setLedState( 
int ledID, 
int ledState )

参数说明:
ledID: 指定要开关哪一个LED (取值0~3)
ledState: 1表示亮,0表示灭

返回值说明:
成功返回0,失败返回-1

该接口用于开关LED灯。

1.4 让PWM蜂鸣器发声和停止发声的接口说明

接口名称 参数与返回值说明 功能说明
int PWMPlay(int frequency);

参数说明:
frequency: 要发声的频率

返回值说明:
成功返回0,失败返回-1

按指定的频率让蜂鸣器发声

int PWMStop();

参数说明:


返回值说明:
成功返回0,失败返回-1

让蜂鸣器停止发声

1.5 读取ADC的转换结果的接口说明

接口名称 参数与返回值说明 功能说明
int readADC()

参数说明:


返回值说明:
成功返回ADC转换的结果,失败返回-1

读取第一个通道的ADC转换结果

int readADCWithChannel(int channel)

参数说明:
channel: 读取指定通道的ADC的值

返回值说明:
成功返回ADC转换的结果,失败返回-1

读取指定通道的ADC转换的结果

int[] readADCWithChannels(int[] channels);

参数说明:
channels: 要读取通道的ADC频道数组

返回值说明:
成功返回多个ADC结果(数组),错误返回空

一次性读取多个频道的结果,性能好