CashChangerSimulator.Device.Virtual
0.0.6-pre
dotnet add package CashChangerSimulator.Device.Virtual --version 0.0.6-pre
NuGet\Install-Package CashChangerSimulator.Device.Virtual -Version 0.0.6-pre
<PackageReference Include="CashChangerSimulator.Device.Virtual" Version="0.0.6-pre" />
<PackageVersion Include="CashChangerSimulator.Device.Virtual" Version="0.0.6-pre" />
<PackageReference Include="CashChangerSimulator.Device.Virtual" />
paket add CashChangerSimulator.Device.Virtual --version 0.0.6-pre
#r "nuget: CashChangerSimulator.Device.Virtual, 0.0.6-pre"
#:package CashChangerSimulator.Device.Virtual@0.0.6-pre
#addin nuget:?package=CashChangerSimulator.Device.Virtual&version=0.0.6-pre&prerelease
#tool nuget:?package=CashChangerSimulator.Device.Virtual&version=0.0.6-pre&prerelease
CashChanger Simulator - Core
This repository contains the core logic and hardware device emulation for the CashChanger Simulator. It is designed as a modular foundational component that powers various user interfaces.
📦 NuGet Packages in this Repository
The following packages are maintained in this repository:
- CashChangerSimulator.Core: Platform-independent core logic, currency calculation, and hardware event abstraction.
- CashChangerSimulator.Device.Virtual: Pure C# virtual hardware simulation (works on Web/Linux/Windows, .NET 10).
- CashChangerSimulator.Device.PosForDotNet: Windows-specific UPOS (POS for .NET) adapter for legacy integration.
User interface components are maintained in their own dedicated repositories: Cli (Command Line Interface) and Wpf (Windows Desktop UI).
Key Features (Platform-Independent Core)
- Reactive Messaging (R3): Uses R3 for consistent state management (
IsBusy,State) and asynchronous hardware event notifications. - Zero-Dependency Event Abstraction: High-layer components (Core/Cli) depend on abstracted event definitions, completely decoupled from Windows-specific libraries.
- UPOS Compliant Behavior: Emulates
DispenseChange,DispenseCash, and the full deposit cycle through a virtual device layer. - Multi-Platform Ready: The Core and Virtual Device projects have zero dependency on Windows-specific libraries, enabling use in Web APIs, CLIs, or Linux environments.
- Reliable Lifecycle Management: Implements
CompositeDisposablepatterns for robust resource cleanup and memory leak prevention.
Setup
Using NuGet (Recommended)
You can install the official packages via NuGet.org or GitHub Packages:
dotnet add package CashChangerSimulator.Core
dotnet add package CashChangerSimulator.Device.Virtual
Local Build
If you need to build from source:
# Build the core library and device simulator
dotnet build
🚀 Live Demo / Simulator API
The Virtual Cash Changer API is available on Google Cloud Run for testing without local setup:
- Interactive Documentation (Scalar): View API Reference
Documentation
For more detailed information, please refer to the documents in the docs/ directory:
- Architecture Overview: High-level system design.
- UPOS Compliance Mapping: Status of UPOS interface implementation.
- OPOS Compliance Mapping: Mapping of OPOS error codes and result codes.
For the Japanese version, see README_JP.md.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- CashChangerSimulator.Core (>= 0.0.6-pre)
- Microsoft.Extensions.Logging (>= 10.0.5)
- R3 (>= 1.3.0)
- Tomlyn (>= 2.3.0)
- ZLogger (>= 2.5.10)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CashChangerSimulator.Device.Virtual:
| Package | Downloads |
|---|---|
|
CashChangerSimulator.Device.PosForDotNet
Core logic and hardware emulation for the CashChanger Simulator. Provides platform-independent managers and virtual device controllers. / 自動釣銭機シミュレータのコアロジックとハードウェア・エミュレーション層。プラットフォームに依存しないマネージャと仮想デバイスコントローラを提供します。 |
GitHub repositories
This package is not used by any popular GitHub repositories.