Mettler Toledo Tiger 8442 Прогрузка весов через TransferEth.dll
Добавлено: 13 ноя 2025, 14:31
Добрый день.
Появилась задача прогружать MT Tiger через библиотеки.
Методом научного тыка дошёл до того, что появился код для powershell
Код: Выделить всё
При правильном формировании файлов Transscale.ini, SCALEADDRESS.INI и trf.out он вполне рабочий.
Получается удалять plu, записывать ингредиенты, название магазина и даже plu.
Проблема в следующем:
Согласно описанию, формат для загрузки однострочных весов CMDHEADER"L06C13C28C01L08U01U02S04L11S04F04S03S03S03" - и он работает (другой вопрос как, но сейчас это не важно)
А вот формат CMDHEADER"L06C13C30С30C01L08U01U02S04L11S04F04S03S03S03" - нет, ошибка длины строки.
Изыскания вывели на библиотеку ArcnetTxt_Bin.dll, которая преобразует строку в нужные байты, так вот внутри неё, если открыть просто блокнотом, можно найти L06C13C28C01L08U01U02S04L11S04F04S03S03S03, как раз для команды 00207, а вот L06C13C30С30C01L08U01U02S04L11S04F04S03S03S03 - внутри нет, и видимо именно из-за этого ничего и не работает.
Между тем, SPCT из этой же папки прекрасно грузит 2 строки, только формат trf.out при этом - бинарник (MTCN_RL00_BINFILE_V4.01).
Меня бы устроил и такой формат, если бы понимать, как его формировать. В документации использование PLUFmtConvert.dll не описано.
1) Может быть, кто-то решал проблему прогрузки 2-строчных весов каким-нибудь другим образом (имеется ввиду без использования SPCT, и вообще без участия пользователя)?
2) Может быть, есть какая-то документация по использованию PLUFmtConvert.dll?
Спасибо.
Появилась задача прогружать MT Tiger через библиотеки.
Методом научного тыка дошёл до того, что появился код для powershell
Код: Выделить всё
Код: Выделить всё
Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;
public class ScaleTester {
[DllImport(@"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\TransferEth.dll", EntryPoint = "_Transfer_Ethernet_EX@8", CallingConvention = CallingConvention.StdCall)]
public static extern int Transfer_Ethernet_EX(string configFile, int key);
[DllImport(@"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\TransferEth.dll", EntryPoint = "Transfer_Ethernet", CallingConvention = CallingConvention.StdCall)]
public static extern int Transfer_Ethernet(string configFile);
}
"@
[ScaleTester]::Transfer_Ethernet_EX("Transscale.ini", 251245664)Получается удалять plu, записывать ингредиенты, название магазина и даже plu.
Проблема в следующем:
Согласно описанию, формат для загрузки однострочных весов CMDHEADER"L06C13C28C01L08U01U02S04L11S04F04S03S03S03" - и он работает (другой вопрос как, но сейчас это не важно)
А вот формат CMDHEADER"L06C13C30С30C01L08U01U02S04L11S04F04S03S03S03" - нет, ошибка длины строки.
Изыскания вывели на библиотеку ArcnetTxt_Bin.dll, которая преобразует строку в нужные байты, так вот внутри неё, если открыть просто блокнотом, можно найти L06C13C28C01L08U01U02S04L11S04F04S03S03S03, как раз для команды 00207, а вот L06C13C30С30C01L08U01U02S04L11S04F04S03S03S03 - внутри нет, и видимо именно из-за этого ничего и не работает.
Между тем, SPCT из этой же папки прекрасно грузит 2 строки, только формат trf.out при этом - бинарник (MTCN_RL00_BINFILE_V4.01).
Меня бы устроил и такой формат, если бы понимать, как его формировать. В документации использование PLUFmtConvert.dll не описано.
1) Может быть, кто-то решал проблему прогрузки 2-строчных весов каким-нибудь другим образом (имеется ввиду без использования SPCT, и вообще без участия пользователя)?
2) Может быть, есть какая-то документация по использованию PLUFmtConvert.dll?
Спасибо.