T
Hi,
I think I'm doing everything correctly and following Roberto's tutorial to a T.
I am getting errors when I try both reading and writing virtual pins.
I am using a wipy 2.0 running firmware 1.18.2.r4
Here Is my process:
set up pymate
safe boot device, download files.
edit pymate_basic.py in lib with code under "# Initialize Virtual Pins and Terminal Pins Here"
restart, add widgets to app, and it always returns errors. Here are two examples of errors:
a)
When I try Roberto's first example of writing, I add the following code under "# Initialize Virtual Pins and Terminal Pins Here" to pymate_basic.py:
# Initialize Virtual Pins and Terminal Pins Here
import pycom
def set_led_color(params):
val = int(params[0])
if (val < 256):
val = val & 0xFF
elif (val > 255 and val < 512):
val = (val << 8) & 0xFF00
elif (val > 511):
val = (val << 16) & 0xFF0000
pycom.rgbled(val)
pymate_library.add_virtual_pin(1,None, set_led_color)
After uploading, and setting up a widget type slider with pin V1, and range 0-750, I slide the slider and get one of the following errors:
"Error calling provided virtual method"
2)"Traceback (most recent call last):
File "boot.py", line 39, in <module>
File "/flash/lib/pymate_basic.py", line 25, in <module>
File "/flash/lib/pymate_library.py", line 414, in run
File "/flash/lib/simple.py", line 202, in wait_msg
File "/flash/lib/pymate_library.py", line 352, in _recv_msg_callback
File "/flash/lib/pymate_library.py", line 278, in _handle_hardware_msg
KeyError: 32"
3)Warning: Virtual write to unregistered pin 1
b) When I try Roberto's second example of reading, I add the following code under "# Initialize Virtual Pins and Terminal Pins Here"
from uos import urandom
def read_random():
val = int(urandom(1)[0])
return val
pymate_library.add_virtual_pin(1,read_random, None)
After setting up the widget type to Display, pin V1, pin Mode INPUT, refresh Rate 500ms, I hit play, and I get the following error:
Traceback (most recent call last):
File "boot.py", line 39, in <module>
File "/flash/lib/pymate_basic.py", line 19, in <module>
File "/flash/lib/pymate_library.py", line 414, in run
File "/flash/lib/simple.py", line 202, in wait_msg
File "/flash/lib/pymate_library.py", line 352, in _recv_msg_callback
File "/flash/lib/pymate_library.py", line 278, in _handle_hardware_msg
KeyError: 32
Please help. There is very little documentation to go off of, and I can't find anything wrong with what I'm doing.
Thanks