linux下配置libfptr10驱动的问题(俄罗斯收银机设备)

问题描述 投票:0回答:1

作为开发者,我们需要将俄罗斯收银机“Kaznachei”的支持融入到项目中。所有集成材料均可在制造商网站上获取。然而,所描述的方案不起作用。 atol驱动不接受字符串参数作为输入。此问题仅出现在linux上,但在windows环境中没有问题。

我们的项目有以下环境

  • 服务器:Linux x64 Ubuntu 22.04 LTS,无图形 shell
  • 项目:C# NET.CORE
  • 驱动程序从
    libfptr10_10.10.0.0_amd64.deb
    软件包安装(从制造商网站https://fs.atol.ru下载)
  • 收银机连接到可通过本地网络访问的 PC。
    atol-fptr-rpc-server
    套件已安装并在 PC 上运行

问题

  1. 无法初始化指定库目录/库路径的驱动程序的工作实例
"DriverPath": "/usr/lib/libfptr10.so".

仅当我们向构造函数提交空字符串时,才会创建驱动程序的实例。

"DriverPath": "".

  1. LIBFPTR_SETTING_REMOTE_SERVER_CONNECTION_TIMEOUT
    LIBFPTR_SETTING_REMOTE_SERVER_ADDR
    设置不是从代码中设置的。执行
    fptr.setSingleSetting()
    方法,然后执行
    fptr.applySingleSettings()
    不会给出结果。我们在 atol 日志中看到一个空行。如果在执行这些方法后,我们再次请求设置
    fptr.getSettings()
    ,结果我们会得到一个带有默认设置的标准 JSON:
2023.12.11 12:47:22.756       T:E5451640 INFO  [FiscalPrinter] libfptr_get_settings()
2023.12.11 12:47:22.764       T:E5451640 INFO  [FiscalPrinter] Текущие настройки: [{
   "AccessPassword" : "",
   "AutoDisableBluetooth" : false,
   "AutoEnableBluetooth" : true,
   "AutoMeasurementUnit" : false,
   "AutoReconnect" : true,
   "BaudRate" : 115200,
   "Bits" : 8,
   "ComFile" : "1",
   "DocumentsJournalPath" : "",
   "IPAddress" : "192.168.1.10",
   "IPPort" : 5555,
   "InvertCashDrawerStatus" : false,
   "LibraryPath" : "",
   "MACAddress" : "FF:FF:FF:FF:FF:FF",
   "Model" : 500,
   "OfdChannel" : 2,
   "Parity" : 0,
   "Port" : 1,
   "RemoteServerAddr" : "",
   "RemoteServerConnectionTimeout" : 10000,
   "ScriptsPath" : "",
   "SilentReboot" : 0,
   "StopBits" : 0,
   "UsbDevicePath" : "auto",
   "UseDocumentsJournal" : false,
   "UserPassword" : "",
   "ValidateMarksWithFnmOnly" : false
}
  1. 如果我们请求设置,然后尝试更改任何设置,然后再次请求设置,我们会收到错误:
Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
  1. 如果没有正确设置
    libfptr10
    驱动程序,我们会得到预期的错误:
2023.12.07 12:04:45.470       T:B12B0640 ERROR [USB] Не удалось найти устройство 2912:FFFF
2023.12.07 12:04:45.476       T:B12B0640 ERROR [FiscalPrinter] Объекту 0xA002B6D0 присвоен код ошибки 4 [Порт недоступен]

结果 根据官方制造商文档的描述,我们无法在 Ubuntu 22.04 LTS 服务器上初始化

libfptr10
驱动程序。

  • 我们尝试将已安装的驱动程序版本回滚到10.9.5.0。
  • 我们尝试通过 linux usbip 实用程序连接 Kaznachei。
  • 我们认为问题与字符串参数的编码有关,并更改了编码选项。
  • 我们认为字节 2 或 4 中的字符宽度很重要,因此我们尝试更改它。

没有结果

json string driver linux-device-driver is-empty
1个回答
0
投票

通过将库

Atol.Drivers10.Fptr.dll
替换为旧版本
10.9.5.0
解决了该问题。可以说该库的当前版本
10.10.0.0
在Linux环境中无法正常工作。万岁

© www.soinside.com 2019 - 2024. All rights reserved.