Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 8 Next »

A quick and easy introduction to how to use the RevPi with the Python programming language.

Why Python?

LED switch with Python

  • Works like writing a "1" to the location in the process image where the RevPiLED is located

  • Where is the RevPiLED located in the process image?

  • Run the following command

piTest -v RevPiLED
  • At offset 119

# ledswitch1.py
f=open("/dev/piControl0","wb+",0)
f.seek(119)
f.write(b'1')
f.seek(119)
f.write(b'0')

Read or write strings

The devices in PiCtory usually provide byte access to the data. You can test this example by using a Virtual Device 32 Bytes in PiCtory.

We read out the offset of “Output_1” variable. This may vary on your configuration, so be careful here.

pi@RevPi40302:~ $ piTest -v Output_1
variable name: Output_1
       offset: 43
       length: 8
          bit: 0

Python example code

def writeString(offset, myString):
    f=open("/dev/piControl0","wb+",0)
    f.seek(offset)
    f.write(str.encode(myString))

def readString(offset, length):
    f=open("/dev/piControl0","wb+",0)
    f.seek(offset)
    my_string_as_bytes = f.read(length)
    return my_string_as_bytes.decode()
	
writeString(43,'Hello World')
readString(43,11)
' Hello World

Verify the contents of the process image with piTest

pi@RevPi40302:~ $ piTest -1 -r 43,11
 72 101 108 108 111  32  87 111 114 108
100
pi@RevPi40302:~ $ piTest -1 -r 43,11,h
48 65 6c 6c 6f 20 57 6f 72 6c 64

RevPiModIO

  • Library developed from the RevPi community

  • Allows easy use of symbolic names from PiCtory

  • Installation not necessary already on the device

  • Documentation

Switch the LED with RevPiModIO

import revpimodio2
rpi = revpimodio2.RevPiModIO(autorefresh=True)
rpi.io.RevPiLED.value = 1
rpi.io.RevPiLED.value = 0

 Python I/O Bit Mirror

import revpimodio2
import time
rpi = revpimodio2.RevPiModIO(autorefresh=True)
while True:
    rpi.io.O_1.value = rpi.io.I_1.value
    time.sleep(0.02)

Video Tutorials

Also, take a look at our video tutorials about Python

Besides, take a look at the following video tutorials

Verwandte Artikel

  • No labels