"""write_memo_config.py -- Write a configuration to a memorator
This example script uses canlib.kvamemolibxml and canlib.kvmlib to load a
configuration file in .xml format, validate it, and then write it to a
connected Memorator.
It requires a configuration xml file and a connected Memorator device.
"""
import argparse
from canlib import kvamemolibxml
from canlib import kvmlib
def write_config(filename, channel_number):
# Read in the XML configuration file
config = kvamemolibxml.load_xml_file(filename)
# Validate the XML configuration
errors, warnings = config.validate()
if errors or warnings:
raise Exception("Errors or warnings found! Check validate_memo_config example.")
# Open the device and write the configuration
with kvmlib.openDevice(channel_number) as memo:
memo.write_config(config.lif)
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description="Write a configuration to a Memorator.")
parser.add_argument('filename', default='logall.xml', nargs='?', help=(
"The filename of the configuration."))
parser.add_argument('channel', type=int, default=0, nargs='?', help=(
"The channel number of the device the configuration should be written to."))
args = parser.parse_args()
write_config(args.filename, args.channel)