today a customer ask me to move in Ignition an old custom application (c#).
The application consists of:
- n-desktop applications running each one in a dedicated PC locally to each plant: the application receive some trigger from automation and capture/organize some photos and tags useful for future quality control checks. Photos are store on a remote server folder and tags/path are store on DB
- 1-desktop application that search photos by tags (on db) and show them on screen (load from file system path)
My design questions are:
- Capture photo client: i presume that that job can be done by the Ignition Gateway. But whats happens if the “company network” is in fault for a while? in old application when the company network was missing the client stores everything locally and publishes them when the connection is restored
- Search/Show photo client: i know that to show documents/photos shared on file system is not possible using perspective (for browser security reason). If the customer doesn’t want to buy VISION license and it want a PERSPECTIVE client, which is the best solution to store/show pictures? It seems that best solution is using WebDev module.
Thanks for any helps
Only Vision can run local code with filesystem access. Vision has limited ability to run while disconnected. You may want a stripped-down full gateway to run the persistent tasks per site.
For delivering photos to Perspective clients, you might be interested in my free Blob Server module.
thanks for your reply.
I think that run a gateway per site it’s too much expensive. Maybe in this case the best solution is to keep my custom application run locally
I’m going to check your module!
@pturmel, I installed your module and i’m reading your docs.
I need to load more than one photos at a time and i doesn’t understand how to show “blob” items in perspective. I was thinking about showing photos using a simple table component…
Your project gave me an idea: I’ve created a simple Store Procedure that upload photos from FileSystem in blob format and return as a simple sql table.
So, don’t try to include the blob data in the query for the table. But do include the primary key you use. Make that column use view to render each row, and in that view, have an image component. For that image component, set its url to the blob server path with the key as the trailing parameter.
See the discussion in that topic with @ryoungk.
Thanks for reply! I’m going to code!
the “jpg” format is not supported by the image control…
It can manage “jpeg”, “png”, “gif”, “svg”… but not the “jpg”…
That should not matter. Supply a content type of
image/jpeg. The content is a blob and does not “have” a file extension.
I’ve already try to change the content type. I think that the main problem is the “base64 string” that i’m creating in SQL and the size in bytes of images…
- The “base64-string” of a my “jpg” image (bigger than 2Mb) starts with: “/9j/4Q/+RXhpZgAATU0AKgAAAAgA…” and the image control shows nothing.
- Converting my image (using a conversion software) to jpeg the “base64-string” starts with: “/9j/4AAQSkZJRgABAQEASABIAAD/4QiKRXhpZgAATU0AKgAAAAgA…” and the image control shows only a thin slice of image.
- I download from internet a casual “jpg” (bigger than 1Mb) and its “base64-string” starts with: “/9j/4AAQSkZJRgABAQEASABIAAD/4gIcSUNDX1B…” and the image control shows only a thin slice of image.
- I download from internet a casual “jpg” (smaller than 1Mb) and its “base64-string” starts with: “/9j/4AAQSkZJRgABAQEBLAEsAAD/4QBoRXhpZg…” and the image control shows correctly the image.
I’m going to tring using WebDev module.
Don’t use base64. Just store the bytes of your image in the blob column.