Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Gino Tosti
pygen
Commits
b846aa1b
Commit
b846aa1b
authored
Jul 05, 2021
by
Gino Tosti
Browse files
added feature to read documents xlsx produced by googledoc
parent
b06e557a
Changes
6
Hide whitespace changes
Inline
Side-by-side
GenDevice/excelIcd.py
View file @
b846aa1b
...
...
@@ -34,8 +34,8 @@ class excelIcd:
if
(
self
.
debug
):
print
(
self
.
nsheets
,
self
.
book
.
sheet_names
)
for
sheet_name
in
(
self
.
book
.
sheet_names
):
#
she
et
=self.book.sheet_name
s[sheet_index]
self
.
sheets
[
sheet_name
]
=
s
elf
.
book
.
parse
(
sheet_name
)
she
=
(
self
.
book
.
parse
(
sheet_name
)).
dropna
(
axis
=
0
,
how
=
'all'
)
self
.
sheets
[
sheet_name
]
=
s
he
.
dropna
(
axis
=
1
,
how
=
'all'
)
siz
=
self
.
sheets
[
sheet_name
].
shape
if
(
self
.
debug
):
print
(
self
.
sheets
[
sheet_name
].
columns
,
siz
[
0
],
siz
[
1
])
...
...
@@ -84,7 +84,7 @@ class excelIcd:
#colname=(str(coname)).replace(' ','_')
for
idx
in
range
(
0
,
Sheet
[
"NRows"
]):
#print "BBBBB", self.sheets["Main"].cell(idx,colind).value
colval
.
append
(
self
.
sheets
[
name
].
iat
[
idx
,
colind
])
colval
.
append
(
str
(
self
.
sheets
[
name
].
iat
[
idx
,
colind
])
)
Sheet
[
coname
]
=
colval
#print(coname,Sheet[coname])
...
...
templates/BaseJavaIDL.tmpl
View file @
b846aa1b
...
...
@@ -463,9 +463,9 @@ public class ${Assembly}BaseImpl extends TCSHardwareDeviceImpl implements ${Asse
#
set
$
name
=($
x
.
ModeSheet
[
"OPC_UA node"
][$
idx
].
split
(
";"
)[
1
]).
split
(
"="
)[
1
].
replace
(
"."
,
"_"
)
#
set
$
type
=$
x
.
ModeSheet
[
"OPC UA Data type"
][$
idx
].
upper
()
#
if
$
x
.
ModeSheet
[
"OPC UA Data type"
][$
idx
].
upper
()==
"INT16"
#
set
$
value
=
int
(
$
x
.
ModeSheet
[
"CMD/MODE value"
][$
idx
]
)
#
set
$
value
=$
x
.
ModeSheet
[
"CMD/MODE value"
][$
idx
]
.
split
(
'.'
)[
0
]
#
else
if
$
x
.
ModeSheet
[
"OPC UA Data type"
][$
idx
].
upper
()==
"INT32"
#
set
$
value
=
int
(
$
x
.
ModeSheet
[
"CMD/MODE value"
][$
idx
]
)
#
set
$
value
=$
x
.
ModeSheet
[
"CMD/MODE value"
][$
idx
]
.
split
(
'.'
)[
0
]
#
else
if
$
x
.
ModeSheet
[
"OPC UA Data type"
][$
idx
].
upper
()==
"BOOLEAN"
#
set
$
value
=
str
($
x
.
ModeSheet
[
"CMD/MODE value"
][$
idx
]).
lower
()
#
else
...
...
@@ -481,9 +481,9 @@ public class ${Assembly}BaseImpl extends TCSHardwareDeviceImpl implements ${Asse
#
set
$
name
=($
x
.
CmdSheet
[
"OPC_UA node"
][$
idx
].
split
(
";"
)[
1
]).
split
(
"="
)[
1
].
replace
(
"."
,
"_"
)
#
set
$
type
=$
x
.
CmdSheet
[
"OPC UA Data type"
][$
idx
].
upper
()
#
if
$
x
.
CmdSheet
[
"OPC UA Data type"
][$
idx
].
upper
()==
"INT16"
#
set
$
value
=
int
(
$
x
.
CmdSheet
[
"CMD/MODE value"
][$
idx
]
)
#
set
$
value
=$
x
.
CmdSheet
[
"CMD/MODE value"
][$
idx
]
.
split
(
'.'
)[
0
]
#
else
if
$
x
.
CmdSheet
[
"OPC UA Data type"
][$
idx
].
upper
()==
"INT32"
#
set
$
value
=
int
(
$
x
.
CmdSheet
[
"CMD/MODE value"
][$
idx
]
)
#
set
$
value
=$
x
.
CmdSheet
[
"CMD/MODE value"
][$
idx
]
.
split
(
'.'
)[
0
]
#
else
if
$
x
.
CmdSheet
[
"OPC UA Data type"
][$
idx
].
upper
()==
"BOOLEAN"
#
set
$
value
=
str
($
x
.
CmdSheet
[
"CMD/MODE value"
][$
idx
]).
lower
()
#
else
...
...
templates/CDBInstance.tmpl
View file @
b846aa1b
...
...
@@ -36,7 +36,7 @@
#end if
format="%$y[$type][1]"
description="$x.GetSheet["Description"][$idx]"
#if $x.GetSheet["Unit"][$idx] !="" and $x.GetSheet["Unit"][$idx] !="NA"
#if
str(
$x.GetSheet["Unit"][$idx]
)
!="" and
str(
$x.GetSheet["Unit"][$idx]
)
!="NA"
and str($x.GetSheet["Unit"][$idx]) !="nan"
units="$x.GetSheet["Unit"][$idx]"
#else
units="none"
...
...
@@ -102,12 +102,11 @@
#end if
format="%${y[$type][1]}"
description="$x.SetSheet["Description"][$idx]"
#if $x.SetSheet["Unit"][$idx] !="" and $x.SetSheet["Unit"][$idx] !="NA"
#if $x.SetSheet["Unit"][$idx] !="" and $x.SetSheet["Unit"][$idx] !="NA"
and str($x.SetSheet["Unit"][$idx]) !="nan"
units="$x.SetSheet["Unit"][$idx]"
#else
units=""
#end if
min_timer_trig="0"
#if $y[$type][1] != "S"
min_delta_trig="0"
...
...
@@ -126,11 +125,11 @@
default_value="0"
format="%${y[$x.ModeSheet["OPC UA Data type"][$idx].upper()][1]}"
description="$x.ModeSheet["Description"][$idx]"
#if $x.ModeSheet["Unit"][$idx] !="" and $x.ModeSheet["Unit"][$idx] !="NA"
units="$x.ModeSheet["Unit"][$idx]"
#else
##
#if $x.ModeSheet["Unit"][$idx] !="" and $x.ModeSheet["Unit"][$idx] !="NA"
and str($x.ModeSheet["Unit"][$idx]) !="nan"
##
units="$x.ModeSheet["Unit"][$idx]"
##
#else
units=""
#end if
##
#end if
min_timer_trig="0"
#if $y[$x.ModeSheet["OPC UA Data type"][$idx].upper()][1] != 's'
min_delta_trig="0"
...
...
@@ -151,11 +150,11 @@
default_value="0"
format="%%${y[$x.CmdSheet["OPC UA Data type"][$idx].upper()][1]}"
description="$x.CmdSheet["Description"][$idx]"
#if $x.CmdSheet["Unit"][$idx] !="" and $x.CmdSheet["Unit"][$idx] !="NA"
units="$x.CmdSheet["Unit"][$idx]"
#else
##
#if $x.CmdSheet["Unit"][$idx] !="" and $x.CmdSheet["Unit"][$idx] !="NA"
and str($x.CmdSheet["Unit"][$idx]) !="nan"
##
units="$x.CmdSheet["Unit"][$idx]"
##
#else
units=""
#end if
##
#end if
min_timer_trig="0"
#if $y[$x.CmdSheet["OPC UA Data type"][$idx].upper()][1] != 's'
min_delta_trig="0"
...
...
templates/simpleServerModel.tmpl
View file @
b846aa1b
...
...
@@ -87,8 +87,10 @@
</References>
</UAObject>
#silent L=[]
#silent N=[]
#for $idx in $range(0,$x["NRows"])
#silent L.append($x["Short name"][$idx])
#if not $x['OPC_UA node'][$idx] in N
#if ($x["OPC UA Data type"][$idx]).upper()[-1]==']' ## test for arrays
#set $sp=($x["OPC UA Data type"][$idx].upper()).split("[")
#set $type=$sp[0].capitalize()
...
...
@@ -126,10 +128,13 @@
</Value>
#end if
</UAVariable>
#silent N.append($x['OPC_UA node'][$idx])
#end if
#end if
#end for
#for $idx in $range(0,$y["NRows"])
#silent L.append($y["Short name"][$idx])
#if not $y['OPC_UA node'][$idx] in N
#if ($y["OPC UA Data type"][$idx]).upper()[-1]==']' ## test for arrays
#set $sp=($y["OPC UA Data type"][$idx].upper()).split("[")
#set $type=$sp[0].capitalize()
...
...
@@ -168,12 +173,15 @@
</Value>
#end if
</UAVariable>
#silent N.append($y['OPC_UA node'][$idx])
#end if
#end if
#end for
#for $idx in $range(0,$m["NRows"])
#set $name=($m["OPC_UA node"][$idx].split(";")[1]).split("=")[1].replace(".","_")
#if not $name in L
#if not $m['OPC_UA node'][$idx] in N
#set $type=$m["OPC UA Data type"][$idx].capitalize()
#if $type[0]=="U"
#set $type=$type.replace("i","I")
...
...
@@ -185,22 +193,19 @@
<Reference
ReferenceType=
"HasTypeDefinition"
>
i=63
</Reference>
<Reference
ReferenceType=
"HasProperty"
IsForward=
"false"
>
ns=4;i=4
</Reference>
</References>
#if $type!="String" and $type != "Boolean"
<Value>
#set $val=str($m['Default value'][$idx])
#if $val=="nan" or $val=="NA"
#set $val="0"
#end if
<uax:
$type
>
$val
<
/uax:$type>
<uax:
$type
>
0
<
/uax:$type>
</Value>
#end if
</UAVariable>
#silent N.append($m['OPC_UA node'][$idx])
#end if
#silent L.append($name)
#end if
#end for
#for $idx in $range(0,$c["NRows"])
#set $name=($c["OPC_UA node"][$idx].split(";")[1]).split("=")[1].replace(".","_")
#if not $name in L
#if not $c['OPC_UA node'][$idx] in N
#set $type=$c["OPC UA Data type"][$idx].capitalize()
#if $type[0]=="U"
#set $type=$type.replace("i","I")
...
...
@@ -212,16 +217,12 @@
<Reference
ReferenceType=
"HasTypeDefinition"
>
i=63
</Reference>
<Reference
ReferenceType=
"HasProperty"
IsForward=
"false"
>
ns=4;i=5
</Reference>
</References>
#if $type!="String" and $type != "Boolean"
<Value>
#set $val=str($c['Default value'][$idx])
#if $val=="nan" or $val=="NA"
#set $val="0"
#end if
<uax:
$type
>
$val
<
/uax:$type>
<uax:
$type
>
0
<
/uax:$type>
</Value>
#end if
</UAVariable>
#silent N.append($c['OPC_UA node'][$idx])
#end if
#silent L.append($name)
#end if
#end for
...
...
test/genDevice.py
100644 → 100755
View file @
b846aa1b
...
...
@@ -34,6 +34,7 @@ def generateComponent(config):
print
(
"The Assembly:"
+
wb
.
MainSheet
[
'Assembly'
][
0
]
+
" includes one device
\n
"
,
devs
)
genSingle
(
wb
,
config
)
os
.
chdir
(
pwd
)
return
devs
def
genMulti
(
wb
,
config
):
for
dev
in
wb
.
MainSheet
[
'Device Name'
]:
...
...
@@ -132,8 +133,10 @@ def getInput():
if
__name__
==
"__main__"
:
pwd
=
os
.
getcwd
()
config
=
getInput
()
generateComponent
(
config
)
print
(
"ALL Done"
)
os
.
chdir
(
pwd
)
test/readIcdFile.py
View file @
b846aa1b
...
...
@@ -13,14 +13,16 @@ if __name__=="__main__":
today
=
date
.
today
()
parser
.
add_option
(
"-f"
,
"--file"
,
dest
=
"book_file"
,
help
=
"ICD Exel File "
,
metavar
=
"FILE"
)
parser
.
add_option
(
"-s"
,
"--sheet"
,
dest
=
"sheet"
,
default
=
'Main'
,
help
=
"ICD Exel File Sheet "
,
metavar
=
"SHEET"
)
(
options
,
args
)
=
parser
.
parse_args
()
gen_dir
=
os
.
environ
[
"PYGEN"
]
excel_file
=
options
.
book_file
wb
=
excelIcd
(
excel_file
)
#wb.getMain()
get
=
wb
.
getSheet
(
"Main"
)
print
(
get
)
get
=
wb
.
getSheet
(
options
.
sheet
)
print
(
get
[
'Unit'
]
)
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment