Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F93463854
helloworld.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Nov 28, 23:36
Size
1 KB
Mime Type
text/x-python
Expires
Sat, Nov 30, 23:36 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
22642039
Attached To
rSERVICENOWCHATALERT servicenow-chat-alert
helloworld.py
View Options
#!/usr/bin/python
# -*- coding: utf-8 -*-
import
os
,
sys
# add ../../Sources to the PYTHONPATH
sys
.
path
.
append
(
os
.
path
.
join
(
".."
,
".."
,
"Sources"
))
from
yocto_api
import
*
from
yocto_digitalio
import
*
def
usage
():
scriptname
=
os
.
path
.
basename
(
sys
.
argv
[
0
])
print
(
"Usage:"
)
print
(
scriptname
+
' <serial_number>'
)
print
(
scriptname
+
' <logical_name>'
)
print
(
scriptname
+
' any'
)
print
(
'Example:'
)
print
(
scriptname
+
' any'
)
sys
.
exit
()
def
die
(
msg
):
sys
.
exit
(
msg
+
' (check USB cable)'
)
if
len
(
sys
.
argv
)
<
2
:
usage
()
target
=
sys
.
argv
[
1
]
.
upper
()
# Setup the API to use local USB devices
errmsg
=
YRefParam
()
if
YAPI
.
RegisterHub
(
"usb"
,
errmsg
)
!=
YAPI
.
SUCCESS
:
sys
.
exit
(
"init error"
+
errmsg
.
value
)
if
target
==
'ANY'
:
# retreive any Relay then find its serial #
io
=
YDigitalIO
.
FirstDigitalIO
()
if
io
is
None
:
die
(
'No module connected'
)
m
=
io
.
get_module
()
target
=
m
.
get_serialNumber
()
print
(
'using '
+
target
)
io
=
YDigitalIO
.
FindDigitalIO
(
target
+
'.digitalIO'
)
if
not
(
io
.
isOnline
()):
die
(
'device not connected'
)
# lets configure the channels direction
# bits 0..3 as output
# bits 4..7 as input
io
.
set_portDirection
(
0x0F
)
io
.
set_portPolarity
(
0
)
# polarity set to regular
io
.
set_portOpenDrain
(
0
)
# No open drain
print
(
"Channels 0..3 are configured as outputs and channels 4..7"
)
print
(
"are configured as inputs, you can connect some inputs to "
)
print
(
"ouputs and see what happens"
)
outputdata
=
0
while
io
.
isOnline
():
inputdata
=
io
.
get_portState
()
# read port values
line
=
""
# display part state value as binary
for
i
in
range
(
0
,
8
):
if
(
inputdata
&
(
128
>>
i
))
>
0
:
line
+=
'1'
else
:
line
+=
'0'
print
(
" port value = "
+
line
)
outputdata
=
(
outputdata
+
1
)
%
16
# cycle ouput 0..15
io
.
set_portState
(
outputdata
)
# We could have used set_bitState as well
YAPI
.
Sleep
(
1000
,
errmsg
)
print
(
"Module disconnected"
)
YAPI
.
FreeAPI
()
Event Timeline
Log In to Comment