Bluebird BP30 Manual de usuario

Barcode Controller
Scenario & Manual
Bluebird, inc.
ver : 1.3
BP30/BM180, EF400/EF500

Contents
1. Introduction
2. BarcodeController working scenario(Chart)
3. BarcodeController working scenario(Details)
4. Exception
5. Information

1. Introduction - 1
Purpose
•BarcodeController is an Android service that allows App to use Barcode module on
Android OS based devices.
•This document is a summary of scenario and program development to support the user
on building application that uses barcode with BarcodeController.
Information
•Name of each Intent is defined on chapter.5.
•Used programming language is Java.
•Communication type between BarcodeController and application is Intent call type and
ExtraData of each Intent contains additional data to be transferred.

1. Introduction - 2
Term definition
•app : Android application that communicates with BarcodeController. The users actually uses this application.
•BarcodeController : Middleware(Android service) that allows application to use Barcode Module.
•DataWedgeMode : Function that allows to read in barcode data without building additional application. Read-in
value goes into text window of current screen where the cursor is on.
•Decoding Timeout : Period of Trigger on status for barcode input. If the valid barcode is not read during this period,
BarcodeController Triggers off and send intent of Decoding Timeout. Default is 5 seconds.
•Handle : Inherent ID value that BarcodeController issues to each application to distinguish between when application
is connected to BarcodeController.

1. Introduction - 2
Term definition
•Profile : Database that sets function details of Barcode module. Changeable on BBSettings app on device.
•Sequence number : The value to distinguish each intend when application send Intent to BarcodeController.
When BarcodeController returns the result to app (ACTION_BARCODE_REQUEST_SUCCESS/FAILED), this value is save
in Intent.
•Symbology : reading-able Barcode image type
•Trigger : Function that sets Barcode module’s beam on/off and sets to read ready/pause status..

2.1 BarcodeController Operation scenario
ACTION_BARCODE_OPEN
EXTRA_INT_DATA3 : Sequence num
ACTION_BARCODE_CALLBACK_REQUEST_SUCCESS
EXTRA_INT_DATA3 : Sequence num
ACTION_BARCODE_CALLBACK_REQUEST_FAILED
EXTRA_INT_DATA2 : 에러ID
EXTRA_INT_DATA3 : Sequence num
User App BarcodeController
ACTION_BARCODE_SET_TRIGGER
EXTRA_INT_DATA2 : trigger value(1:on / 0:off)
EXTRA_INT_DATA3 : Sequence num ACTION_BARCODE_CALLBACK_DECODING_
DATA
EXTRA_BARCODE_DECODING_DATA : Barcode
read data(byte[])
EXTRA_INT_DATA3 : Sequence num
ACTION_BARCODE_CALLBACK_REQUEST_FAILED
EXTRA_INT_DATA2 : Error ID of specific situation
EXTRA_INT_DATA3 : Sequence num
ACTION_BARCODE_CLOSE
EXTRA_INT_DATA3 : Sequence num
END
ACTION_BARCODE_CALLBACK_REQUEST_SUCCESS
EXTRA_INT_DATA3 : Sequence num
ACTION_BARCODE_CALLBACK_REQUEST_FAILED
EXTRA_INT_DATA2 : Error ID
EXTRA_INT_DATA3 : Sequence num

3.1 Specific Scenario
Barcode Open
•Opens Barcode module. Function that allows Barcode module and use app to communicate.
•If module Open is successful, handle value will be transferred through
ACTION_BARCODE_CALLBACK_REQUEST_SUCCESS.
•If the Module fails to open, it will return ACTION_BARCODE_CALLBACK_REQUEST_FAILED Intent.
(1) ACTION_BARCODE_OPEN ACTION_BARCODE_CALLBACK_REQUEST_SUCCESS /
ACTION_BARCODE_CALLBACK_REQUEST_FAILED
(2) Put extra :
Example
BarcodeIntent.ACTION_BARCODE_OPEN);
BroadcastReceiver
BarcodeIntent.ACTION_BARCODE_CALLBACK_REQUEST_SUCCESS);
BroadcastReceiverdeclaration :
BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals(BarcodeIntent.ACTION_BARCODE_CALLBACK_REQUEST_SUCCESS))
{
int handle = intent.getIntExtra(Constants.EXTRA_HANDLE, 0);
int seq = intent.getIntExtra(Constants.EXTRA_INT_DATA3, 0); -> Check if the
value is 1
//to do
}
else
if(action.equals(BarcodeIntent.ACTION_BARCODE_CALLBACK_REQUEST_FAILED))
int handle = intent.getIntExtra(Constants.EXTRA_HANDLE, 0);
Int errorId = intent.getIntExtra(Constants.EXTRA_INT_DATA2, 0);
int seq = intent.getIntExtra(Constants.EXTRA_INT_DATA3, 0);
//to do
Name ExtraName Type
EXTRA_HANDLE EXTRA_HANDLE Int
EXTRA_INT_ERROR_ID EXTRA_INT_DATA2 Int
EXTRA_INT_SEQUENCE_ID EXTRA_INT_DATA3 Int

3.2 Specific Scenario
Barcode Set Trigger
•Function that delivers trigger command to Barcode module and sets beam to on/off and sets barcode read to standby mode.
•If the Intent is used, EXTRA_INT_DATA2 should be sent as 0 or 1.(0:trigger off / 1:trigger on)
•If barcode read is successful after Trigger on, read-in value will be sent through ACTION_BARCODE_CALLBACK_DECODING_DATA
Intent .(Transfer symbology value to EXTRA_INT_DATA2 )
•If Trigger off is called, beam will be off and barcode read try stops.
•Timeout exists and barcode is not read for timeout period(default: 5 seconds), ACTION_BARCODE_CALLBACK_REQUEST_FAILED
Intent will be generated.
(1) ACTION_BARCODE_SET_TRIGGER(EXTRA:1) ACTION_BARCODE_CALLBACK_DECODING_DATA /
ACTION_BARCODE_CALLBACK_REQUEST_FAILED
(2) ACTION_BARCODE_SET_TRIGGER(EXTRA:0) -> ACTION_BARCODE_CALLBACK_REQUEST_SUCCESS / FAILED
(3) Put extra :
Example
Name ExtraName Type
EXTRA_HANDLE EXTRA_HANDLE Int
EXTRA_BARCODE_DECODING_DATA EXTRA_BARCODE_DECODING_DATA ByteArray
EXTRA_INT_SYMBOLOGY EXTRA_INT_DATA2 Int
EXTRA_INT_SEQUENCE_ID EXTRA_INT_DATA3 Int
BarcodeIntent.ACTION_BARCODE_SET_TRIGGER);
intent.putExtra(“EXTRA_HANDLE”, handle);
intent.putExtra(“EXTRA_INT_DATA2”, 1);
BroadcastReceiver
BarcodeIntent.ACTION_BARCODE_CALLBACK_REQUEST_SUCCESS);
BarcodeIntent.ACTION_BARCODE_CALLBACK_REQUEST_FAILED);
BarcodeIntent.ACTION_BARCODE_CALLBACK_DECODING_DATA);
String action = intent.getAction();
if(action.equals(BarcodeIntent. ACTION_BARCODE_CALLBACK_DECODING_DATA))
{
int handle = intent.getIntExtra(Constants.EXTRA_HANDLE, 0);
Int symbology = intent.getIntExtra(Constants.EXTRA_INT_DATA2, 0); -> result
of symbologies value(ex. UPC-A : 1, Code128 : 10 …)
int seq = intent.getIntExtra(Constants.EXTRA_INT_DATA3, 0); -> check if the
value is 10
byte[] data =
intent.getByteArrayExtra(Constants.EXTRA_BARCODE_DECODING_DATA);
//to do
}
};

3.3 Specific Scenario
Barcode Decoding Timeout
•Intent that BarcodeController transfers to application if valid barcode read is not tried for Decoding Timeout
period(default: 5 seconds). ( ACTION_BARCODE_CALLBACK_REQUEST_FAILED).
(1) ACTION_BARCODE_SET_TRIGGER(EXTRA:1) ACTION_BARCODE_CALLBACK_REQUEST_FAILED(-6)
(2) Put extra :
Example
BarcodeIntent.ACTION_BARCODE_SET_TRIGGER);
BroadcastReceiver Registration
BarcodeIntent.ACTION_BARCODE_CALLBACK_REQUEST_SUCCESS);
BarcodeIntent.ACTION_BARCODE_CALLBACK_REQUEST_FAILED);
BarcodeIntent.ACTION_BARCODE_CALLBACK_DECODING_DATA);
BroadcastReceiverdeclaration :
BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals(BarcodeIntent.ACTION_BARCODE_CALLBACK_REQUEST_FAILED))
int handle = intent.getIntExtra(Constants.EXTRA_HANDLE, 0);
Int errorId = intent.getIntExtra(Constants.EXTRA_INT_DATA2, 0); -> -6
int seq = intent.getIntExtra(Constants.EXTRA_INT_DATA3, 0); -> check if the
value is 10
//to do
Name ExtraName Type
EXTRA_HANDLE EXTRA_HANDLE Int
EXTRA_INT_ERROR_ID EXTRA_INT_DATA2 Int
EXTRA_INT_SEQUENCE_ID EXTRA_INT_DATA3 Int

3.4 Specific Scenario
Barcode Close
•Intent : -> finished module activation through transfer close command to the barcode module.
•If the closed process is completed, the program cannot use the barcode module until the module is re-opened using
the ACTION_BARCODE_OPEN intent.
•When Trigger status is on, the barcode module will close immediately. No matter the timeouts, all read fucntions will
be disabled
•When the Close process is completed, the timeout will also be turned off.
(1) ACTION_BARCODE_CLOSE ACTION_BARCODE_CALLBACK_REQUEST_SUCCESS / FAILED
(2) Put extra :
Example
Name ExtraName Type
EXTRA_HANDLE EXTRA_HANDLE Int
EXTRA_INT_ERROR_ID EXTRA_INT_DATA2 Int
EXTRA_INT_SEQUENCE_ID EXTRA_INT_DATA3 Int
BarcodeIntent.ACTION_BARCODE_CLOSE);
intent.putExtra
(“EXTRA_HANDLE”, handle);
BarcodeIntent.ACTION_BARCODE_CALLBACK_REQUEST_SUCCESS);
BarcodeIntent.ACTION_BARCODE_CALLBACK_REQUEST_FAILED);
….
String action =
intent.getAction();
if(action.equals(BarcodeIntent.ACTION_BARCODE_CALLBACK_REQUEST_SUCCESS))
{
int handle = intent.getIntExtra(Constants.EXTRA_HANDLE, 0);
int seq = intent.getIntExtra(Constants.EXTRA_INT_DATA3, 0); -> check whether 100 or
not
//to do
}
else if(action.equals(BarcodeIntent.ACTION_BARCODE_CALLBACK_REQUEST_FAILED))
int handle = intent.getIntExtra(Constants.EXTRA_HANDLE, 0);
Int errorId = intent.getIntExtra(Constants.EXTRA_INT_DATA2, 0);
int seq = intent.getIntExtra(Constants.EXTRA_INT_DATA3, 0); -> check whether 100 or
not
//to do
};
Otros manuales para BP30
1
Este manual sirve para los siguientes modelos
2
Otros manuales de Lector de código de barras de Bluebird



















