当不使用rpi或单元测试时,有一堆假接口用于开发
fake-rpi的Python项目详细描述
假覆盆子皮
为什么??
我在PowerBook上做了很多开发,我厌倦了不断地创建 我的笔记本电脑上的dev和travis.ci上的测试的假接口。
- 2017年4月2日:beta质量
- 2017年4月8日:初始python3支持…这是一个痛苦
那么,这是否模拟了覆盆子皮上的一切?不!现在它模拟 我用的和需要的。随着时间的推移,还会有更多的人加入。我们也欢迎您 提交对我尚未添加的内容的请求。
Adafruit | LSM303(accelerometer) |
GPIO | gpio pins |
picamera | camera |
RPi | PWM |
smbus | i2c |
serial | not done yet |
安装
安装的首选方法是:
pip install fake_rpi
发展
提交请求并进行开发:
git clone cd fake_rpi pip install -e .
使用量
要伪造rpi.gpio或smbus,必须在应用程序之前执行以下代码:
# Replace libraries by fake onesimportsysimportfake_rpisys.modules['RPi']=fake_rpi.RPi# Fake RPi (GPIO)sys.modules['smbus']=fake_rpi.smbus# Fake smbus (I2C)
然后您可以在应用程序中保留常用的导入:
importRPi.GPIOasGPIOimportsmbusGPIO.setmode(io.BCM)# now use the fake GPIOb=GPIO.input(21)sm=smbus.SMBus(1)# now use the fake smbusb=sm.read_byte_data(0x21,0x32)# read in a byte
打开/关闭假呼叫记录:
fromfake_rpiimporttoggle_print# by default it prints everything to std.errortoggle_print(False)# turn on/off printing
但是我需要smbus来返回单元测试的特定字节!好,然后创建我的smbus的子级,如下所示 只修改需要更改的方法:
fromfake_rpiimportsmbusfromfake_rpiimportprintfclassMyBus(smbus.SMBus):@printfdefread_byte_data(self,i2c_addr,register):ret=0xffifi2c_addr==0x21:ret=0x55elifi2c_addr==0x25:ret=0x11returnretsm=MyBus()b=sm.read_byte_data(0x21,0x32)# read in a byte
打印打开或关闭
以下是打印完成后gitrepo中example.py的输出 打开或关闭:
kevin@Logan fake_rpi $ ./example.py <<< WARNING: using fake raspberry pi interfaces >>>
kevin@Logan fake_rpi $ ./example.py <<< WARNING: using fake raspberry pi interfaces >>> fake_rpi.RPi.PWM.__init__() fake_rpi.RPi.PWM.start(5,) fake_rpi.smbus.SMBus.__init__(1,) fake_rpi.smbus.SMBus.write_byte_data(1, 2, 3) fake_rpi.smbus.SMBus.read_byte_data(1, 2): 21 fake_rpi.smbus.SMBus.close() __main__.MyBus.__init__() __main__.MyBus.read_byte_data(1, 2): 72 __main__.MyBus.read_i2c_block_data(1, 2, 3): [90, 90, 90]
更改日志
2019-03-29 | 0.6.1 | bug fix with randint range |
2017-11-30 | 0.6.0 | bug fix with printing |
2017-10-23 | 0.5.3 | bug fix with randint |
2017-09-05 | 0.5.1 | flushing out interfaces |
2017-07-07 | 0.3.0 | fixed bugs, print statement, and reduced dups |
2017-04-08 | 0.1.0 | initial python3 setup and support |
2017-04-02 | 0.0.2 | pushed to pypi with landscape.io fixes |
2017-04-01 | 0.0.1 | created |
麻省理工学院执照
版权所有(c)2017 Kevin J.Walchko
兹免费准许任何人取得 本软件和相关文档文件(“软件”),用于处理 不受限制的软件,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或销售副本 以及允许向其提供软件的人员 因此,必须满足以下条件:
上述版权公告及本许可公告须包括在 软件的拷贝或大部分。
本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性、适用性的保证 为了特殊目的和不侵权。在任何情况下,作者或 版权持有人应对任何索赔、损害或其他责任负责,无论 在合同诉讼、侵权诉讼或其他诉讼中,由 与软件的连接或软件的使用或其他交易。