查看: 5989|回复: 13

[入门教程] Edison上程序开发——Python API 一览

[复制链接]
本帖最后由 孙毅 于 2015-10-31 00:35 编辑

前面我们学了如何使用Python来编程,也做了几个例子了。这次教程,我们一块看下Edison Python编程中所有的API。
不需要背过,至少我们也得混个脸熟啊,这样在需要的时候,我们得知道去哪里找他们啊。
下面基本上就是Edison提供给我们所有的Python API了。恕我懒惰,没有翻译成汉语啊,不过这样可以培养大家看英文文档的能力啊。嘻嘻嘻。
有任何问题,直接回复,跟大家一块看一下啊。

总的来说,一共7类API,就涵盖了几乎所有的功能了:
Aio
I2c
Gpio
Pwm
Spi
Uart
Common
来下面我们一个类一个类的帮大家列出来,以下部分可粗略过一下,用到的时候,再来查询好了:p

Aio
class mraa.Aio(pin)
API to Analog IO.
This file defines the aio interface for libmraa
        getBit() → int
                Gets the bit value mraa is shifting the analog read to.
                bit value mraa is set return from the read function

        read() → int
                Read a value from the AIO pin. By default mraa will shift the raw value up or down to a 10 bit value.
                The current input voltage. By default, a 10bit value

        readFloat() → float
                Read a value from the AIO pin and return it as a normalized float.
                The current input voltage as a normalized float (0.0f-1.0f)

        setBit(int bits) → mraa::Result
                Set the bit value which mraa will shift the raw reading from the ADC to. I.e. 10bits
                bits: the bits the return from read should be i.e 10

I2c
class mraa.I2c(bus, raw=False)
API to Inter-Integrated Circuit.
An I2c object represents an i2c master and can talk multiple i2c slaves by selecting the correct addressIt is considered best practice to make sure the address is correct before doing any calls on i2c, in case another application or even thread changed the addres on that bus. Multiple instances of the same bus can exist.

        address( uint8_t address) → mraa::Result
                Set the slave to talk to, typically called before every read/write operation
                address: Communicate to the i2c slave on this address

        frequency( mraa::I2cMode mode) → mraa::Result
                Sets the i2c Frequency for communication. Your board may not support the set frequency. Anyone can change this at any time and this will affect every slave on the bus
                mode: Frequency to set the bus to

        read( uint8_t * data) → int
                Read length bytes from the bus into *data pointer
                data: Data to read into
                length: Size of read in bytes to make
                length of read, should match length

        readByte() → uint8_t
                Read exactly one byte from the bus
                char read from the bus

        readBytesReg( uint8_t reg, uint8_t * data) → int
                Read length bytes from the bus into *data pointer starting from an i2c register
                reg: Register to read from
                data: pointer to the byte array to read data in to
                length: max number of bytes to read
                length passed to the function or -1

        readReg( uint8_t reg) → uint8_t
                Read byte from an i2c register
                reg: Register to read from
                char read from register

        readWordReg( uint8_t reg) → uint16_t
                Read word from an i2c register
                reg: Register to read from
                char read from register

        write( uint8_t const * data) → mraa::Result
                Write length bytes to the bus, the first byte in the array is the command/register to write
                data: Buffer to send on the bus, first byte is i2c command
                length: Size of buffer to send

        writeByte( uint8_t data) → mraa::Result
                Write a byte on the bus
                data: The byte to send on the bus

        writeReg( uint8_t reg, uint8_t data) → mraa::Result
                Write a byte to an i2c register
                reg: Register to write to
                data: Value to write to register

        writeWordReg( uint8_t reg, uint16_t data) → mraa::Result
                Write a word to an i2c register
                reg: Register to write to
                data: Value to write to register

Gpio
class mraa.Gpio(pin, owner=True, raw=False)
API to General Purpose IO.
This file defines the gpio interface for libmraa

        dir( mraa:: Dir dir) → mraa::Result
                Change Gpio direction
                dir: The direction to change the gpio into

        edge( mraa::Edge mode) → mraa::Result
                Set the edge mode for ISR
                mode: The edge mode to set

        getPin( bool raw=False) → int
        getPin() -> int
                Get pin number of Gpio. If raw param is True will return the number as used within sysfs. Invalid will return -1.
                raw: (optional) get the raw gpio number.

        isr( mraa::Edge mode, PyObject * pyfunc, PyObject * args) → mraa::Result
                Sets a callback to be called when pin value changes
                mode: The edge mode to set
                fptr: Function pointer to function to be called when interupt is triggered
                args: Arguments passed to the interrupt handler (fptr)

        isrExit() → mraa::Result
                Exits callback - this call will not kill the isr thread immediatly but only when it is out of it’s critical section

        mode( mraa::Mode mode) → mraa::Result
                Change Gpio mode
                mode: The mode to change the gpio into

        read() → int
                Read value from Gpio

        useMmap( bool enable) → mraa::Result
                Enable use of mmap i/o if available.
                enable: true to use mmap

        write( int value) → mraa::Result
                Write value to Gpio
                value: Value to write to Gpio

Pwm
class mraa.Pwm(pin, owner=True, chipid=-1)
API to Pulse Width Modulation.
This file defines the PWM interface for libmraa

        config_ms( int period, float duty) → mraa::Result
                Set the period and duty of a PWM object.
                period: represented in ms.
                duty: represnted in ms as float.

        config_percent( int period, float duty) → mraa::Result
                Set the period and duty (percent) of a PWM object.
                period: as represented in ms.
                duty: percentage i.e. 50% = 0.5f

        enable( bool enable) → mraa::Result
                Set the enable status of the PWM pin. None zero will assume on with output being driven and 0 will disable the output
                enable: enable status of pin

        max_period() → int
                Get the maximum pwm period in us
                max pwm in us

        min_period() → int
                Get the minimum pwm period in us
                min pwm in us

        period( float period) → mraa::Result
                Set the PWM period as seconds represented in a float
                period: Period represented as a float in seconds

        period_ms( int ms) → mraa::Result
                Set period, milliseconds
                ms: milliseconds for period

        period_us( int us) → mraa::Result
                Set period, microseconds
                us: microseconds as period

        pulsewidth( float seconds) → mraa::Result
                Set pulsewidth, As represnted by seconds in a (float)
                seconds: The duration of a pulse

        pulsewidth_ms( int ms) → mraa::Result
                Set pulsewidth, milliseconds

        pulsewidth_us( int us) → mraa::Result
                The pulsewidth, microseconds
                us: microseconds for pulsewidth

        read() → float
                Read the ouput duty-cycle percentage, as a float
                A floating-point value representing percentage of output. The value should lie between 0.0f (representing on 0%) and 1.0f Values above or below this range will be set at either 0.0f or 1.0f

        write( float percentage) → mraa::Result
                Set the output duty-cycle percentage, as a float
                percentage: A floating-point value representing percentage of output. The value should lie between 0.0f (representing on 0%) and 1.0f Values above or below this range will be set at either 0.0f or 1.0f


Spi
class mraa.Spi(bus)
API to Serial Peripheral Interface.
This file defines the SPI interface for libmraa

        bitPerWord( unsigned int bits) → mraa::Result
                Set bits per mode on transaction, default is 8
                bits: bits per word

        frequency( int hz) → mraa::Result
                Set the SPI device operating clock frequency
                hz: the frequency to set in hz

        lsbmode( bool lsb) → mraa::Result
                Change the SPI lsb mode
                lsb: bool
                lsb: Use least significant bit transmission - 0 for msbi

        mode( mraa::Spi_Mode mode) → mraa::Result
                Set the SPI device mode. see spidev0-3
                mode: the mode. See Linux spidev doc

        write( uint8_t * txBuf) → uint8_t *
                Write buffer of bytes to SPI device The pointer return has to be free’d by the caller. It will return a NULL pointer in cases of error
                txBuf: buffer to send
                length: size of buffer to send
                uint8_t* data received on the miso line. Same length as passed in

        writeByte( uint8_t data) → int
                Write single byte to the SPI device
                data: the byte to send
                data received on the miso line or -1 in case of error

        write_word( uint16_t data) → uint16_t
                Write buffer of bytes to SPI device The pointer return has to be free’d by the caller. It will return a NULL pointer in cases of error
                txBuf: buffer to send
                length: size of buffer (in bytes) to send
                uint8_t* data received on the miso line. Same length as passed in

Uart
class mraa.Uart(*args)
API to UART (enabling only)
This file defines the UART interface for libmraa

        dataAvailable( unsigned int millis=0) → bool
                dataAvailable() -> bool
                Check to see if data is available on the device for reading
                millis: number of milliseconds to wait, or 0 to return immediately
                true if there is data available to read, false otherwise

        flush() → mraa::Result
                Flush the outbound data. Blocks until complete.

        getDevicePath() → std::string
                Get string with tty device path within Linux For example. Could point to “/dev/ttyS0”
                char pointer of device path

        read( char * data) → int
                Read bytes from the device into char* buffer
                data: buffer pointer
                length: maximum size of buffer
                numbers of bytes read

        readStr( int length) → std::string
                Read bytes from the device into a String object
                length: to read
                string of data

        setBaudRate( unsigned int baud) → mraa::Result
                Set the baudrate. Takes an int and will attempt to decide what baudrate is to be used on the UART hardware.
                baud: unsigned int of baudrate i.e. 9600

        setFlowcontrol( bool xonxoff, bool rtscts) → mraa::Result
                Set the flowcontrol
                xonxoff: XON/XOFF Software flow control.
                rtscts: RTS/CTS out of band hardware flow control

        setMode( int bytesize, mraa::UartParity parity, int stopbits) → mraa::Result
                Set the transfer mode For example setting the mode to 8N1 would be “dev.setMode(8,UART_PARITY_NONE , 1)”
                bytesize: data bits
                parity: Parity bit setting
                stopbits: stop bits

        setTimeout( int read, int write, int interchar) → mraa::Result
                Set the timeout for read and write operations <= 0 will disable that timeout
                read: read timeout
                write: write timeout
                interchar: inbetween char timeout

        write( char const * data) → int
                Write bytes in String object to a device
                data: buffer pointer
                length: maximum size of buffer
                the number of bytes written, or -1 if an error occurred

        writeStr( std::string data) → int
                Write bytes in String object to a device
                the number of bytes written, or -1 if an error occurred

Common
Python interface to libmraa
        mraa.adcRawBits() → unsigned int
        mraa.adcSupportedBits() → unsigned int
        mraa.getI2cBusCount() → int
        mraa.getI2cBusId(unsigned int i2c_bus) → int
        mraa.getPinCount() → unsigned int
        mraa.getPinName(int pin) → std::string
        mraa.getPlatformName() → std::string
        mraa.getPlatformType() → mraa:: Platform
        mraa.getSubPlatformId(int pin_or_bus_index) → int
        mraa.getSubPlatformIndex(int pin_or_bus_id) → int
        mraa.getVersion() → std::string
        mraa.hasSubPlatform() → bool
        mraa.init() → mraa::Result
        mraa.isSubPlatformId(int pin_or_bus_id) → bool
        mraa.pinModeTest(int pin, mraa:: Pinmodes mode) → bool
        mraa.printError(mraa::Result result)
        mraa.setLogLevel(int level) → mraa::Result
        mraa.setPriority(unsigned int const priority) → int



丄帝De咗臂  版主

发表于 2015-10-31 08:46:13

回复 支持 反对

使用道具 举报

大连林海  初级技神

发表于 2015-10-31 12:59:42

求翻译 求翻译
回复 支持 反对

使用道具 举报

hnyzcj  超级版主

发表于 2015-10-31 19:47:55

大圣你这样搞好像不地道,搞点例如好不好
回复 支持 反对

使用道具 举报

孙毅  版主
 楼主|

发表于 2015-10-31 20:00:30


翻译也是然并卵啊。。。。
回复 支持 反对

使用道具 举报

孙毅  版主
 楼主|

发表于 2015-10-31 20:00:53

hnyzcj 发表于 2015-10-31 19:47
大圣你这样搞好像不地道,搞点例如好不好

好说,例子马上就到位!吼吼吼
回复 支持 反对

使用道具 举报

hnyzcj  超级版主

发表于 2015-10-31 20:26:43

孙毅 发表于 2015-10-31 20:00
好说,例子马上就到位!吼吼吼

感谢大圣
回复 支持 反对

使用道具 举报

hnyzcj  超级版主

发表于 2015-10-31 20:27:37

孙毅 发表于 2015-10-31 20:00
好说,例子马上就到位!吼吼吼

这对你来说都是小孩游戏
回复 支持 反对

使用道具 举报

大连林海  初级技神

发表于 2015-10-31 20:29:43

hnyzcj 发表于 2015-10-31 20:27
这对你来说都是小孩游戏

等到花儿都谢了
回复 支持 反对

使用道具 举报

孙毅  版主
 楼主|

发表于 2015-10-31 23:54:12


去看吧,不知道 花儿明天 是否依然会开
回复 支持 反对

使用道具 举报

孙毅  版主
 楼主|

发表于 2015-10-31 23:54:48

hnyzcj 发表于 2015-10-31 20:27
这对你来说都是小孩游戏

别整没用的!赶紧学起来!
回复 支持 反对

使用道具 举报

大连林海  初级技神

发表于 2015-11-1 08:56:48

孙毅 发表于 2015-10-31 23:54
去看吧,不知道 花儿明天 是否依然会开

你这不错哦
回复 支持 反对

使用道具 举报

大连林海  初级技神

发表于 2015-11-1 08:57:12

孙毅 发表于 2015-10-31 23:54
别整没用的!赶紧学起来!

你就笑话我们 不过也是鞭策
回复 支持 反对

使用道具 举报

hublot  学徒

发表于 2017-5-24 10:22:00

大神好,请问这篇英文文档的源地址在哪呀?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail