Linux SDK API clarification

// Expert user has replied.
D David Llevat 2 years 3 months ago
12 13 0

Hi,

I have a system with PL5000AM and a SE4850 connected to it. Up until now we where integrating it using the SSI, however, I wanted to try the Linux SDK to build some plug-and-play driver to connect the PL5000 using the microUSB connector to a Linux PC. So far, I haven't been able to replicate the behavior I have with the SSI and I'd like some clarifications regarding the Linux SDK:
- Do you know which commands provided in the Linux SDK API allows for a continuous scan (like the START_SESSION of the SSI command)?
- Regarding the API, do you know some extra documentation on the Methods to be executed through ExecCommand and ExecCommandAsync, for instance, SCAN_ENABLE, DEVICE_CAPTURE_BARCODE and SET_ACTION (available in doc but not in the API). I found the documentation a little bit ambiguous.
- Also, do you know if there is a way to decode all barcodes in the field of view and not only just one programmatically (like Multicode)?

Thanks in advanced!

Please register or login to post a reply

13 Replies

R Riad Benallou

Linux SDk support only SNAPI or IBM usb protocols
with following link https://techdocs.zebra.com/dcs/scanners/sdk-linux/api/
Check DEVICE_PULL_TRIGGER
under src > Native > CsCommon > include > CsUserDefs.h

or within page https://www.zebra.com/content/dam/zebra_new_ia/en-us/manuals/software/s…
check page 55
Note that sdk comes with full sample including its source code 0
With regards decoding all barcodes in field of view. The Pl5000 does support MDF and UDI parsing
For MDF check page
https://www.zebra.com/us/en/products/software/scanning-systems/multi-co…

For UDI check pages below
https://www.zebra.com/content/dam/zebra_new_ia/en-us/support-and-downlo…
https://www.youtube.com/watch?v=ZNUjLVWWdYs

D David Llevat

Sorry for the delayed answer.

I've been checking your answers and regarding the MDF and UDI, I have a follow up question.

The main issue is that I don't have any structured data, meaning that I have any barcode type and a random number of barcodes. What I'd like to do is to read all of them (if they are in the field of view only) without any criteria, basically, doing the MDF but with no criteria at all; aside from sending a separator inbetween codes to differentiate them.

I've been trying to configure the MDF to do so, but I haven't been able to do it so far. Could you help me with that? How should I configure or structure the MDF to be able to decode any code and any number of codes in a single shot?

Thanks in advanced

R Riad Benallou

Indeed if no structured data with pattern to differentiate between the codes MDF will not work . unfortunately there is no option. That would allow to read all code in one pull for your scenario but what would be possible is to enable Continuous Bar Code Read Parameter # 649 to report every barcode when trigger is pressed with that you can enable Unique Bar Code Reporting Parameter # 723 to report the barcode only one time while trigger is pressed . This process should apply to a pull trigger command .

Note you might adjust Timeout Between Decodes, Different Symbols Parameter # 144 to zero .

Hope above helps

D David Llevat

Just tested the configuration you propose and indeed it works much better, however, it does not solve the issue.

Regarding MDF, there is something I don't understand. Supose I had 3 barcodes in an image but they can be total random barcodes. If I create 3 rules, defined as:
* code type -> all codes,
* criteria -> any/required for match/transmit barcode,
* actions -> send all that remains
What happens is that, effectively reads any barcode but the output is the SAME barcode three times.
Given this, I'm guessing that (sort of) the decoder has a list of decoded barcodes existing in the image and applies the filter to that list, and every time does it from the beggining of the list. What I'd like is to get that list.

Can you think of a workaround for an MDF rule that, for instance, Rule2 excludes from the pattern the result of Rule1?
Or is there a way of requesting that list of codes?

Thanks in advanced!

R Riad Benallou

Unfortunately if the 3 barcodes do not have anything that differitionate them then that would cause a loop where all rules applies to all codes which will cause decoder to continuously look for match until mdf session time out is reached or trigger being released .
If this impacting a opportunity you might consider contacting your zebra account team for custom

D David Llevat

And just to make sure I understood your previous answer, are the following statements correct?
1. there is no way to retrieve the 3 barcodes without applying a rule, despite the decoder having them.
2. I cannot not apply a rule where the filter is the result of the previous rule.

Sorry for the insistence!

R Riad Benallou

For point 1 : That's correct hence I suggested you might ask for custom through your zebra account team .
For point 2 : I'm not sure if I understand . Could help me clarify what you meant ?

D David Llevat

Sure! Thanks for the help.

I am thinking of a way to workaround this issue and trying to understand how rules are applied internally. Hence, I was thinking if there is a way such that:
* Option1: use previous rules to define criteria. Example:
Rule1: code type - any, criteria - any, actions - send all that remains.
Rule2: code type - any, criteria - <strong>not matched before</strong>, actions - send all that remains.

* Option2: match a single code and output all of them. Like if the rule was: if code X detected, read all. Example:
Rule1: code type - any, criteria - any, actions - send all that remains <strong>+ other codes</strong>.

Any ideas?

R Riad Benallou

Unfortunately that is not available .
You can define different set of rules , with output flag in case it's match or not .
If you set three rules to send the data in both case it's match or not match , as long the rules criteria and code types are the same then you will have an issue because the three barcodes would have all three rules applicable and in this case none will be selected which results on no output . I don't see solution for your problem without custom .
Just out of curiosity are the labels always sale format and same number of barcodes printed ?
If the issue is with fact that you want to send all code at same time , you can still use continues read and set some buffer and timers/count . Obviously there is delay in such solution however your application can buffer decided data then send them together

D David Llevat

Thanks for all the answers!

Answering your last question, no; in fact, the barcodes may belong to different labels which are placed together. Also, the number of barcodes may vary; what can be true is that, given the FOV, no more than 3 barcodes (4 in a worst case escenario) will appear in a single image.

The main issue I found with the continous reading is that if I do a test still, i.e., engine pointing to same point, the barcodes around the first decoding are never read.

R Riad Benallou

Odd , because if picklist is disabled and different symbol time out is set to zero , continuous read should allow to decode any different barcode in FOV in sequence . If you have picklist enabled then it will lead to behavior you mentioned because scanner will only decode barcode that is touched by the aimer

D David Llevat

I've double checked and picklist is deactivated. Knowing that the behaviour should be as you say, I've noticed that the issue was with the timeout between same symbols #137, setting it to 0 makes it work, although with a small delay.
I'll check if in this configuration the system performs correctly, but most probably won't. I'll try to get a custom modification.

Thanks for the help.

R Riad Benallou

Let me know the test results you will have
For my info what scan engine are you using and what firmware was loaded in you pl decoder ?

CONTACT
Can’t find what you’re looking for?