作为开发者,我们需要将俄罗斯收银机“Kaznachei”的支持融入到项目中。所有集成材料均可在制造商网站上获取。然而,所描述的方案不起作用。 atol驱动不接受字符串参数作为输入。此问题仅出现在linux上,但在windows环境中没有问题。
我们的项目有以下环境:
libfptr10_10.10.0.0_amd64.deb
软件包安装(从制造商网站https://fs.atol.ru下载)atol-fptr-rpc-server
套件已安装并在 PC 上运行问题
"DriverPath": "/usr/lib/libfptr10.so".
仅当我们向构造函数提交空字符串时,才会创建驱动程序的实例。
"DriverPath": "".
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
}
Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
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
驱动程序。
没有结果
通过将库
Atol.Drivers10.Fptr.dll
替换为旧版本 10.9.5.0
解决了该问题。可以说该库的当前版本10.10.0.0
在Linux环境中无法正常工作。万岁