Определите тип входного аргумента и -name на сервере freeopcua - PullRequest
0 голосов
/ 28 декабря 2018

Я программирую сервер opc для сервера octoprint.Сервер opc должен связываться с сервером octoprint.Один из методов opc - запустить процесс среза, передав путь stl-файла через графический интерфейс клиента opc.Поскольку я нуб в этом разделе, я не знаю, как определить имя и тип входных аргументов.

inargs = []
for name, dtype in {"File Path": VariantType.String,
                 "Output Path": VariantType.String,
                 "Config File": VariantType.String,
                 "Auto Upload": VariantType.Boolean}.items():
        # inarg = ua.Argument()
        # inarg.Name = name
        inargs.append(dtype)
outargs = [VariantType.String, VariantType.Boolean]
self.sliceStl: Node = self.processData.add_method(self.addrSpace, "Slice STL", self._sliceStl, inargs, outargs)

@uamethod
def _sliceStl(self, parent, filePath: str="~/Uploads/CalibrationCube.stl",
             outputPath: str="~/GCODE/",
             configFile: str="~/Slic3r/tevo_config.ini",
             autoUpload=True,
             select=False,
             _print=False):
    if not filePath.endswith(".stl"):
        raise Exception("Slic3rError: File must have *.stl format!")
    command = f"~/Slic3r/slic3r  {filePath} " \
              f"--load {configFile} -o {outputPath} " \
              "--output-filename-format [input_filename_base].gcode"
    os.system(command)
    if autoUpload:
        return self._uploadGcode(filePath.replace(".stl", ".gcode"), select, print)
    else:
        return True  

При вызове sliceStl () в графическом интерфейсе opc-клиента Форма метода клиентского интерфейса OPC * появляется форма с 4 полями ввода.Но ни у одного из них нет имени или типа.Я хочу, чтобы каждое поле ввода имело имя и тип данных.

...