All - I'm new to the SB1 development have a couple questions regarding the screen.
1) After launching my app, is there a way for the main screen to scroll to fit all the required data in?
2) The units screen refresh (flickers) every 3 seconds. Where is the option to change this?
Thanks,
Bob
You could probably implement a scroll bar or something like that, but I would strongly suggest not doing that on this device. It will be very frustrating for users to use something like that with a fingertip. You really probably need to rethink the screen layout and just show the data that is most important on the initial screen and maybe give the user an option to use a large button to get to subsequent data. You really need any touchable elements on the screen to be pretty large so that the user can use them with a fingertip. If you have touchable elements that have images on them, that usually also means that the image should be as big as the element itself. I have seen instances where the image is smaller than a button for instance, and the image is what gets the press, so the button does not work unless you press it right in the middle.
As far as the flashing, E-Ink needs to clear the screen after X amount of data has been written to it, otherwise it starts getting "ghosting" of previous screen data under your intended screen view, so the driver keeps track of how much data has been written to the display and wipes the screen when it decides it needs to. It sounds like you might have a moving element on the screen if it keeps doing this. You want to minimize any animation on this device. The E-Ink display saves battery life because it only needs power when it is changing the display. If the display data is not changing, the display draws no power. If you have something moving on the display (like a rotating hourglass) battery life will suffer and you will get the excess flashing that you are seeing.
Points: 0
You voted ‘up’
I found the cause of the screen flickers. I have a textbox for our associates to enter their associate number. Since they can scan their badge, when the form loads I'm setting the focus to the textbox. This is causing the screen flickers. Is there a way to set the focus to a textbox without the keyboard trying to load?
Points: 0
You voted ‘up’
Hello Rapp
If we focus on any textfield cursor will blink even on PC. Because SB1 device is a eInk display device for each blink of cursor device screen repaints. We do not recommend users to use focus().
You need not focus the text field to scan a bar code. You need to subscribe to scan event and get the scanned bar code data. Please find below sample code. This wil avoid flickering and bringing Keyboard
function decodeEvent(a, b, c) {
document.getElementById('myScanData').value = a;
}
window.onload = function () {
scanner.enable();
scanner.decodeEvent = 'decodeEvent(%s)';
}
<input type="text" id="myScanData" placeholder="Please scan your badge" />
Hope this helps
thanks
Chenna
Points: 0
You voted ‘up’
Hello,
That won't work for my app as I have 3 different text boxes that except scans so I can't harcode a textbox id. I'm using the below code:
function decodeEvent(jsonObject) {
document.forms["scanner"].elements[document.activeElement.id].value = jsonObject.data;
}
So this way whichever of my 3 textboxes has the focus receives the scanner data. I also need to set the focus to the next textbox once the previous textbox is populated. This causes the form to flicker constantly. Let me know if there is a solution as we're evaluating the SB1 units for purchase.
Bob
Points: 0
You voted ‘up’
Option 1
Manage a counter for each scan. first scan assign the barcode data to first input field and second and third scans respectively
var counter = 0;
function decodeEvent(jsonObject) {
if(counter == 0)
{
document.forms["scanner"].elements[1 input field].value = jsonObject.data;
counter++;
}
else if(counter == 1)
{
document.forms["scanner"].elements[2 input field].value = jsonObject.data;
counter++;
}
else if(counter == 2)
{
document.forms["scanner"].elements[3 input field].value = jsonObject.data;
counter = 0;
}
}
Option 2:
Onload open the first input field keyboard and scan and open a second keyoard and 3 keyboard
window.onload = openKeyboardForInput1;
function openKeyboardForInput1()
{
asl.showKeyboard({
inputId: 'input1',
title: 'first',
type: 'text',
scanner: true,
back: true,
maxlength: 10 // max length of the field for auto submit
}, function (id, value) {
document.getElementById('input1').value = value;
openKeyboardForInput2();
});
}
function openKeyboardForInput2()
{
asl.showKeyboard({
inputId: 'input2',
title: 'input2',
type: 'password',
scanner: true,
back: true,
maxlength: 10
}, function (id, txt) {
document.getElementById('input2').value = txt;
openKeyboardForInput3();
});
}
function openKeyboardForInput3()
{
asl.showKeyboard({
inputId: 'input3',
title: 'input3',
type: 'text',
scanner: true,
back: true,
maxlength: 10
}, function (id, txt) {
document.getElementById('input3').value = txt;
});
}
thanks
Chenna
Points: 0
You voted ‘up’
Thanks for your response. I'm not trying to be difficult but my problem is I have 3 textboxes that can except scanned data. cashier number, sku1 and sku2. I can't use the above counter option because what if the cashier doesn't have their badge, they'll need to type it in or what if the barcodes are unreadable on the sku, they'll need to type it in. So I need to be able to set the focus to a textbox which they can scan into or bring up the keyboard and type into.
So it appears if I do not focus on a textbox and then click in it, the keyboard comes up. If I close the keyboad without entering any data and try and scan in that field, nothing is captured. Why is that?
Points: 0
You voted ‘up’
As long as you are avoid the focus on textfield cursor can not blink and screen flickering can be avoided.
As per the 1st option you can validate the scanned data for first textfield and show a user notification to scan again Once first scan is successful only allow to next field. If user wants to enter manually always he can click on textfield to get the user input.
If you are unable to scan after returning from keyboard, this may be bug. Please let me know the OS version.
Recently we have released OS 36.3. You can use the same.
thanks
Chenna
Points: 0
You voted ‘up’
You can find here https://portal.motorolasolutions.com/Support/US-EN/Resolution?solutionId=94771&redirectForm=search&searchQuery=%3FsearchType%3Dsimple%26searchTerm%3Dsb1
is it scanner totally disabled and you are not able to see red beam when you press scan button?
thanks
Chenna
Points: 0
You voted ‘up’
Yes that is the case.
Points: 0
You voted ‘up’
Is there any documentation on updating the OS through the USB port? That's how I'll need to update.
Points: 0
You voted ‘up’
Updating through the USB isn't supported but in this post is a barcode that the RDT Client on the SB1 uses to update the device from our Public MSP server.
Points: 0
You voted ‘up’
Please find attached a sample file which demonstrate textfield without a cursor blinking and focused. This may help you. I got this sample from html - Hide textfield blinking cursor - Stack Overflow
thanks
Chenna
Points: 0
You voted ‘up’
We have OS version 02.01.31. Guess I can download the new os on this site somewhere?
If I can scan after returning from keyboard, that may be an acceptable option.
Points: 0
You voted ‘up’