I'm setting up an automated printing configuration with CardExchange, but I'm having some difficulties with error detection. I'm using a Magicard Prima 4 printer on a Windows 7 Service pack 1 system. CardExchange Producer Ultimate v126.96.36.199 .
1. Main issue: Printjob failure (cancel) detection
First I disabled printjob spooling, changed the setting to print directly to the printer. Otherwise CardExchange would never be able to detect errors.
The card template has a .cedx file for printing, and a .dtd file for the database connection. No magnetic encoding, no contactless encoding, no plugins. The Print trigger error behavior is set to 'Store the error message'.
When an error occurs during printing: for example cardfeed empty or printer not connected, I get a pop-up from the printer driver.
When I correct the issue (in this case connect the printer) and press the retry button, the driver handles it and the card is printed. CardExchange processes the database storage items of the card template as expected.
However when I press cancel on the driver pop-up, the print job is canceled, but CardExchange still treats this as a successful print. The database storage items are processed as if it was a success. Expected behavior would be CardExchange detecting the cancellation.
2.Mifare classic UID reading
Building on the card template used in issue 1, I'm also trying to read the card UID of the printed card. I added a column card_uid in the database and set this up as a storage item. When I add a Mifare classic read configuration (the .mfr file), I see 2 options to read the card UID:
1. In the card designer I can now select Content type 'MIFARE Classic UID'
2. In the card mappings I can now select 'Chip serial number' as data type.
My questions about this configuration:
a. Is there a difference between setting the data via the card designer vs via the card mappings window?
b. Would it be possible to do this without configuring a .mfr file? I only need the card UID, no other communication is done .
3.Boot CardExchange in automated printing
Is there any way to start CardExchange directly into automated printing mode? e.g. with a command argument?
Currently we just start CardExchange and press the 'Start printing' button manually. It would be nice to have an automated way of doing this, so we don't forget this action after a reboot.
It would be greatly appreciated if I could get some help for these issues. Am I doing something wrong or misinterpreting things? Are there any tricks I don't know about?
1 - Getting the error status back from the printer is always difficult, once the print job has been sent to the driver it has already left CardExhange so we get no response back that we can work with.
The error handling is more for errors within CardExchange itself, eg.. issues processing contactless or writing to databases. Once the print job reaches the driver it is considered printed by CardExchange.
2 - The mappings window was replaced with the options within the CardDesigner and so it is always best to do these settings within th card designer where possible. In fact the mappings window is hidden by default unless you check the option to "Show advanced mappings" under advanced options.
3 - If you browse to the instalation folder below you can modify the CardExchange.ini file, the last section is an autostart option for automated printing which you can cange from False to True.
C:\Program Files (x86)\CardExchange Solutions\CardExchange Producer
Hope that helps,
CardExchange Solutions Support Team
"If you define the problem correctly, you almost have the solution." (Steve Jobs)
The following user(s) said Thank You Kevin De Brucker