Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
D
domotikad
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
domotika
domotikad
Commits
5e2d5510
Commit
5e2d5510
authored
Feb 02, 2014
by
nextime
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added a script to upgrade config file of I/O boards
parent
b98e60a6
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
101 additions
and
0 deletions
+101
-0
confupdate
scripts/confupdate
+101
-0
No files found.
scripts/confupdate
0 → 100755
View file @
5e2d5510
#!/usr/bin/python
import
sys
,
shutil
,
os
import
struct
def
printhelp
():
print
print
'##################################################################################'
print
print
'Domotika I/O Boards file updater'
print
print
'usage: '
,
sys
.
argv
[
0
],
'<source file> <destination file> [config version]'
print
print
' * source file is a devconf.bin or config.bin file as saved from the board.'
print
' * destination file is the new config file the updater will write'
print
' * config version is optional, if not specified the latest supported version'
print
' will be assumed, and is related to the config version, not the board version'
print
' as specified in the following table for DMRv3:'
print
print
' RelayMaster <= 1.2.3 Version 6'
print
' RelayMaster == 1.2.4 Version 7'
print
' RelayMaster == 1.2.5 Version 7'
print
' RelayMaster == 1.2.6 Version 8'
print
print
'Example: to update a config file from 1.2.2 to 1.2.6 you must save the config file'
print
'(both complete config or I/O config are supported) from the old firmware version,'
print
'then you can launch:'
print
' '
,
sys
.
argv
[
0
],
'oldconfig.bin newconfig.bin 8'
print
'The final 8 can be omitted as is the latest version actually supported, but needs'
print
'to be specified (as 7) if the target firmware version is 1.2.5'
print
print
'after that, upgrade the firmware on the board, and then you can restore the config'
print
'using the "newconfig.bin" file.'
print
print
'WARNING: from version 6 to version 7 and up there is a very important change: the '
print
' configurable HTTP port. The procedure suggested is to upgrade the complete'
print
' config and to perform a board reset with the resetconf script to default '
print
' after the upgrade!'
print
print
'##################################################################################'
print
def
main
():
if
not
os
.
path
.
isfile
(
sys
.
argv
[
1
])
or
os
.
path
.
isfile
(
sys
.
argv
[
2
]):
print
'Error: cannot read source or write destination'
print
printhelp
()
sys
.
exit
(
1
)
shutil
.
copyfile
(
sys
.
argv
[
1
],
sys
.
argv
[
2
])
f
=
open
(
sys
.
argv
[
2
],
'r+b'
)
ctype
=
f
.
read
(
4
)
if
ctype
==
'DMCF'
:
webport
=
12363
elif
ctype
==
'DMCD'
:
webport
=
11991
else
:
print
'Error, config file not recognized!'
print
printhelp
()
os
.
unlink
(
sys
.
argv
[
2
])
sys
.
exit
(
1
)
tover
=
'
\x08
'
if
len
(
sys
.
argv
>
3
)
and
int
(
sys
.
argv
[
3
])
<=
8
and
int
(
sys
.
argv
[
3
])
>=
7
:
tover
=
struct
.
pack
(
'B'
,
int
(
sys
.
argv
[
3
]))
elif
len
(
sys
.
argv
>
3
):
print
'Error, target version not supported'
print
printhelp
()
os
.
unlink
(
sys
.
argv
[
2
])
sys
.
exit
(
1
)
oldver
=
struct
.
unpack
(
'B'
,
f
.
read
(
1
))[
0
]
if
oldver
<
6
or
oldver
>
7
:
print
'Error, source version not supported'
print
printhelp
()
os
.
unlink
(
sys
.
argv
[
2
])
sys
.
exit
(
1
)
print
' [*] Converting file...'
f
.
seek
(
4
)
f
.
write
(
tover
)
if
(
oldver
<
7
):
f
.
seek
(
webport
)
f
.
write
(
"
\x50\x00
"
)
f
.
close
()
print
' [*] File converted to version '
,
struct
.
unpack
(
'B'
,
tover
)[
0
],
'on file'
,
sys
.
argv
[
2
]
print
if
__name__
==
'__main__'
:
if
len
(
sys
.
argv
)
<
3
:
printhelp
()
else
:
main
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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