下面列出了每个 C# SDK 版本,从当前版本到首个发布版本。
| Version | Summary |
|---|---|
| 0.0.5.20 (Current) | 在 lowlevel_serial_t 中整合了低级串行接收处理(仅头部帧、友好轮询睡眠和命名读取器线程);修复了 vmc_link 链路断开问题,其中错过的确认让数据包永远挂起并停止保活(重传不再受限于发送超过接收);vmc_vend_t 现在在任何状态下全局处理 session_end 和 send_transfer_data 以获得更强大的销售流程 |
| 0.0.5.19 | 改进了链接可靠性并修复了虚假重传 |
| 0.0.5.18 | 修复了 rx 和 tx 线程之间关于 m_pending_tx_msg 访问的竞态条件 |
| 0.0.5.17 | 添加了 pre_auth_amount_config(0x8c)销售子命令,包括消息类、解码/编码支持、工厂方法、事件处理和公开 API;添加了演示菜单选项以与 Java SDK 对齐(检查余额、预付购买、预授权配置、显示消息、关闭套接字) |
| 0.0.5.16 | Marshall 消息中的多销售最大产品数现在根据协商的最大消息大小计算;修复了 session_end 超时过早过期的问题,导致 reader_always_on 提前触发 |
| 0.0.5.15 | 在所有模块中对齐了 C# SDK 与 Java SDK:修复了 transfer_data 位图常量和多个编码错误(msg_time_rsp_t、msg_setup_max_min_prices_t、msg_remote_selection_t、msg_expansion_t、msg_reader_state_t)、添加了缺失的消息类和 vposm_ext/ev_ext 消息的工厂分派、添加了 consumer_id 和其他 transfer_data 字段、修复了 vmc_vend_t、vmc_general_t、vmc_socket_t 和 vmc_link 中众多会话、套接字和通用模块错误 |
| 0.0.5.14 | 为常开模式添加了实时价格变更支持,即使在读取器已启用之后,还添加了健全性检查使得 vend_request 和 close_session 返回布尔值并拒绝超过允许金额的价格(禁用 long_price 时为 65k);修复了 msg_single_vend_t 上的 session_id 解码问题并更新了多销售请求日志 |
| 0.0.5.13 | 对齐了 C# SDK 与 Java SDK;修复了 multi_vend_session_close 编码 |
| 0.0.5.12 | 添加了防护措施以防止在没有链接时发起销售、套接字和通用操作,防止不必要的崩溃;优化了 eth_port 日志 |
| 0.0.5.11 | 移除了不必要的令人担忧的”虚假确认”警告;修复了 eth_port 以在 VPOS 重启但 VMC 端的套接字不关闭时恢复,通过关闭和重新连接 |
| 0.0.5.10 | 修复了多销售多会话数据包编码 |
| 0.0.5.09 | 修复了一个可能因缓冲区环绕导致的数据包丢失,触发了重传,以及交易结束后未清除卡数据的错误;eth_port 现在可正常使用 |
| 0.0.5.08 | 添加了增强显示控制(VPOSM),具有对 VPOS Touch 设备的向后兼容性,并更新了示例应用程序以支持各种显示控制布局;稳定了 eth_port 实现 |
| 0.0.5.07 | 修复了帧大小检测,具有更好的健全性检查以支持不同的 Marshall 消息大小;为端口接口添加了 flush() 调用 |
| 0.0.5.06 | 通过 transfer_data 添加了站点 ID 和品牌名称传输到机器,以及一个新的技术员模式命令以远程打开门;修复了单个产品的长价格 |
| 0.0.5.05 | 添加了品牌选择和自定义 transaction_id 生成 |
| 0.0.5.04 | 修复了一个在最新 SDK 上接收 on_begin_session 的问题 |
| 0.0.5.03 | 添加了长价格支持(VPOSM)和 QR 第三方授权支持;修复了负价格显示问题 |
| 0.0.5.02 | 移除了令实现者困惑的 CPU 饥饿警告 |
| 0.0.5.01 | 移除了 lowlevel_serial;现在注入 serial_port_i 实现(提供了工作正常的 pc_port.cs);修复了 VPOS 序列号作为原始字节返回而不是正确排列的字符串返回的问题 |
| 0.0.4.23 | 修复了缓冲区管理中的重传错误,可能丢失同时到达的连续数据包、mdb_rsp 解析错误(Marshall 主机)、lowlevel_serial 缓冲区管理错误和影响 transfer_data 解析的字符串 TLV 解码错误 |
| 0.0.4.22 | 为 vend_session_t 添加了 session_id 字段用于多会话引用;修复了跳过用户回调的 msg_display_event_t 解析错误 |
| 0.0.4.21 | 修复了 card_balance 解码和解析 transfer_data 时的可能崩溃,包括可变长度整数字段;将 .NET 版本更改为 4.6.2 |
| 0.0.4.20 | 添加了记录器 API 以将原始数据转储到日志文件 |
| 0.0.4.19 | 修复了在没有会话启动时到达 on_begin_session 时的未定义状态机状态和来自无论链接状态如何调用 API 或在等待 end_session 时停止回调的死锁风险;添加了从卡检测开始在整个交易中发送 transfer_data 的能力,并添加了 SDK 配置日志 |
| 0.0.4.17 | 添加了检查余额会话类型、卡子类型和卡余额 transfer_data、销售折扣/最终价格计算,以及对常开设置上切换到信息会话的支持;修复了多会话设置上不工作的电子收据、导致已确认数据包重传的 rx 和 tx 线程之间的竞态条件,以及发送 reader_enable 时失去通信时的可能崩溃 |
| 0.0.4.16 | 修复了影响示例应用程序和 SDK 的多实例错误 |
| 0.0.4.15 | 添加了实例化多个 Marshall 链接的能力 |
| 0.0.4.14 | 修复了项目价格和代码 API 类型(整数到短整数)和卡呈现后但在请求销售之前取消会话时的崩溃 |
| 0.0.4.13 | 修复了错过多个标签的 transfer_data 解析错误 |
| 0.0.4.12 | 会话对象上的 session_status 现在由 SDK 填充以报告交易取消原因;修复了常开模式中的会话取消;优化了 lowlevel_serial CPU 使用率 |
| 0.0.4.11 | 添加了用于调试的 rx 重新排列中的数据包转储;改进了压力下的 lowlevel_serial 处理 |
| 0.0.4.10 | 添加了 vend_status(bool) 以明确销售成功、会话结构上的总计费金额(如果有的话还有折扣),以及日志行中的绝对 POSIX 时间戳;将 Log.initialize() 重命名为 Log.stream();修复了销售取消时序错误和 SDK 初始化时的虚假 CPU 警告 |
| 0.0.4.9 | 为 onStatus API 和 device_not_available_reason 枚举添加了额外数据参数;修复了虚假 transfer_data 解析问题;示例应用程序现在在 onReady 上显示人类可读的状态代码和额外 VPOS 信息 |
| 0.0.4.8 | 添加了 Log.console(boolean)、新 transfer_data 字段(主和 POS 固件版本、Monyx ID、默认信用)、新设备状态枚举和 onSessionTimeout(id) 事件;重写了示例应用程序 |
| 0.0.4.7 | 向 vmc_vend 添加了 unit_of_measure 枚举值;在终端和文件之间对齐了日志输出 |
| 0.0.4.6 | 改进了 lowlevel_serial 链接可靠性;修复了 fw_info 字段排列、销售会话状态请求错误和 vmc_socket 繁忙/重传超时错误 |
| 0.0.4.5 | 在 tx_buf 引用关键部分上添加了信号灯保护 |
| 0.0.4.4 | 与 Marshall 3.0 对齐:添加了会话状态查询、fw_info SDK 版本字符串字段、读取器状态检索、条目类型枚举、QR 电子收据和远程销售;添加了 CPU 监控、多销售产品限制以避免缓冲区溢出,以及 fw_info 的附加 VMC 信息字段;重写了示例应用程序 |
| 0.0.4.3 | 添加了在运行时启动和停止文件日志的能力 |
| 0.0.4.2 | 修复了 UI 事件错误 |
| 0.0.4.1 | 添加了防护措施以防止在空闲模式下禁用读取器和显示事件回调 |
| 0.0.4.0 | 添加了显示控制支持、额外状态代码和 onStatus 销售回调(参见 marshall_t.status_xxxx) |
| 0.0.3.5 | 修复了 MSR 卡编码 |
| 0.0.3.4 | 为 lowlevel_serial_t 添加了串行端口访问保护并优化了访问;将销售 onReady 回调更改为提供最后会话对象(首次调用时为空) |
| 0.0.3.3 | 修复了从 onReady() 调用 start_session 的错误 |
| 0.0.3.2 | 添加了将 SDK 日志定向到文件的能力和 Monyx 卡到 card_type 枚举;修复了来自无效日志字符串格式化的多销售崩溃和在 onTransactionInfo 内返回无效日期的 get_transaction_id() 错误 |
| 0.0.3.1 | 添加了串行数据包转储级别和销售拒绝政策参数,以及会话类上的 session_timeout 状态类型 |
| 0.0.3.0 | 更新到最新 Marshall 协议修订版:链接建立现在报告商户 ID、终端 ID 和机器位置;添加了套接字 MTU 和超时配置 |
| 0.0.2.17 | 澄清空队列错误是通知而不是错误 |
| 0.0.2.16 | 修复了常开错误 |
| 0.0.2.15 | 更新了 vmc_general 事件接口;修复了 reader_always_on 仅在显式禁用常开时应用 |
| 0.0.2.14 | 添加了启用或禁用日志输出的能力和常开示例 |
| 0.0.2.13 | 修复了阻止重新启动的”停止”问题;添加了 vmc_framework.get_version() |
| 0.0.2.12 | 修复了关键链接错误 |
| 0.0.2.11 | 添加了 paymarket 机器类型;更改了电动车充电器机器类型 |
| 0.0.2.10 | 添加了机器类型到配置和常开模式;改进了套接字处理;修复了虚假不匹配消息 ID 警告、资金可用转换问题和机器序列号/版本/模型字符串长度限制 |
| 0.0.2.9 | 修复了有时试图从空队列传输的链接错误 |
| 0.0.2.8 | 添加了销售会话上 transfer_data 结构的解析以获得详细、可读的信息 |
| 0.0.2.7 | 改进了套接字日志并更改了低级接口;onReady(...) 回调现在传输 VPOS 配置;为 vmc_configuration 添加了 multi_vend_support 标志(VPOS 必须配置预授权以使用多销售会话);修复了阻止某些 Marshall API 从 onReady(...) 被调用的错误 |
| 0.0.2.6 | 统一了单销售和多销售的销售请求 API,产品在 vend_session_t 上声明 |
| 0.0.2.5 | 添加了对 DCS 的数量报告(需要 VPOS 4.0.1.5 rc9 或更新)和交易 ID 报告 API;修复了多会话设置上不工作的电子收据、导致已确认数据包重传的 rx 和 tx 线程之间的竞态条件,以及发送 reader_enable 时失去通信时的可能崩溃 |
| 0.0.2.4 | 修复了模型/版本报告到 DCS;将保活计时器与配置的超时分离 |
| 0.0.2.3 | 添加了日志消息和链接统计;修复了主缓冲区中间的缓冲区索引解析错误 |
| 0.0.2.2 | 修复了通信问题 |
| 0.0.2.1 | 修复了有时触发过快的重传超时 |
| 0.0.2.0 | 改进了 low_level_serial 示例;添加了 Marshall 背驮消息的处理;修复了重传错误 |
| 0.0.1.9 | 添加了 VMC 身份验证示例;改进了 low_level_serial 示例 |
| 0.0.1.8 | 修复了链接问题;添加了 CC 最后 4 位数字 transfer_data |
| 0.0.1.7 | 添加了读取器常开模式和现金销售 |
| 0.0.1.6 | 修复了会话关闭状态错误;添加了现金销售通知 API |
| 0.0.1.5 | 添加了 Mifare/mag 身份验证支持 |
| 0.0.1.4 | 添加了套接字支持和信息会话支持 |
| 0.0.1.3 | 初始版本 |