Czur scanner, a possible 'mini-sdk'

An SDK by another name perhaps. Until or if an official SDK is released. I have been exploring the possibility of other ways to write programs for the Czur ET16 scanner. Here are some thoughts.

The hardware for the Czur scanner is unique, but its based on very good first principals. The provided software is good, but could use some refinement. They have been totally focused on hardware and delivery of product for several months but appear to be nearing the end of fullfillment.

I have no special contacts with the company, nor access to any source code or special information.

I have also not delved into dissecting or taking apart the software provided.

However it is possible to look at the files delivered and make some guesses as to which are more important than others, and how they might be otherwise repurposed.

First an SDK is a 'Software Development Kit' it does not presume to replace any provided software, but instead seeks to make developing new software to work with the provided software easier for the software developer.

With that in mind.

The simplest example is that of a software library, and possible 'metadata' for how to use the software library, such as header files or documentation.

Looking over the default directory of the provided Czur software

C:\Program Files (x86)\Czur scanner

We can see several things.

The most obvious are the main program resides in the root directory, and supporting projects or files for the main application are in subdirectories.

Of the files in the root directory, many are from well know public projects or sources, like OpenCV, SDL, Microsoft.

Leaving a very few which seem clustered close to the same development time, and which [guessing] likely make calls to the surrounding support software.

The one that really stands out is a file called ETapp.dll -- it looks like it might be based on BCapp.dll and before that ETCore.dll

I make these guesses based on the fact there is a directory called BC_log and fills with troubleshooting data. And that the older BCapp and ETCore files seemed to be developed in a progression.. from simpler to more complex and then slimmed down to the more current ETapp.dll

An SDK if it were to be released, would probably describe the function calls available from the ETapp.dll software library and what their parameters were.

Its also a guess.. but I would assume all of the software is compiled with some form of Visual C++ meaning that a program designed to use this SDK API would import functions from the loaded DLL -- ETapp.dll and then make calls and receive something like the image in a sort of buffer prepared and provided to the library by the calling program. It might even prepare this buffer by calling one of the functions in another supporting DLL.

I would hope that Czurtek would recognize this is a very small file, and probably a very small API which would fully enable third parties to use their hardware and bring a community of users closer together with many choices in specialize software for many purposes.. integration for Outlook with plugins for example.. or integration with Skype for presentations.

On the Mac platform, re-implementing the very small ETapp.dll would probably be very very easy.

As would re-implementing it on Linux.

Its not that a [whole] software suite of programs needs to be written for each platform.. or even a TWAIN driver for each platform.. simply providing sufficient documentation to use the ETapp.dll functions would probably fill that need.

There are many scanners on the market.. many come and go rather quickly.

The ones that are remembered and revered are the ones from the manufacturers that choose to document and release a simple API or SDK explaining how software writers can write plugins for existing software.. or how to create completely new programs to support their product.

This enhances their product at no cost to them, it "differentiates their product" from all others on the market.. and makes their product "sought after" and enticing.. even long after it has left the market.