
Project overview
I developed a dedicated Windows service that connects production software to multiple EZCAD3 controllers for laser marking. The application receives jobs through a local HTTP/JSON API, prepares each controller independently and starts active laser units in parallel.
Programming challenge
The main challenge was reliably connecting managed C# code to the native 64-bit EZCAD3 SDK. The integration uses a P/Invoke layer, with clear lifecycle management of SDK resources, return-code checks and isolated command execution for each controller.
How the solution is organised
- Separate layers – the HTTP API, execution workflow and EZCAD3 driver are separated so that each part can be tested and changed independently.
- Controlled states – the service tracks preparation, execution, completion, cancellation and errors without allowing invalid commands to overlap.
- Parallel processing – each controller has its own execution context, while an orchestrator coordinates the common start and waits for every active unit to finish.
- Hardware-free simulation – the same workflow could be verified with a simulator before remote testing on a real Windows machine and connected equipment.
- Diagnostics – structured logs record state changes, operation duration and errors, making commissioning and later maintenance easier.
Reliability and testing
The implementation includes input validation, safe stopping, time limits for SDK calls and a predictable return to the initial state. Automated tests cover the API and simulated workflow, while integration with real controllers was verified gradually: first on one unit, then in parallel operation.
The software controls the workflow and signals, but it does not replace an industrial machine's independent hardware safety circuits.
Technologies used
C#, .NET, ASP.NET Core, Windows Service, HTTP/JSON API, P/Invoke, EZCAD3 SDK, asynchronous and parallel programming, automated tests and structured logging.
Result
The client received a modular service that removes the need for the main production software to control the EZCAD3 application directly. The solution prepares multiple controllers, coordinates execution, reports status and provides enough technical information for reliable diagnostics without exposing production-process details.
Client feedback
★★★★★5/5“Exceptional work! Highly organized, very good communications. Very satisfied with his work.”
This is a separate continuation of the experience shown in the EZCAD3 barcode-scanning application, focused on service architecture, direct SDK integration and operation with multiple controllers.
For a similar integration, see the custom desktop software development service.
Leave a Comment