SerialComm

Enterprise Browser 3.7

Overview

The SerialComm API is an extension to facilitate serial communications using Enterprise Browser.

Supported ONLY on devices with an available serial port supported by the device OS.
For a device's API support info, see Release Notes in its device OS "Full Update" section.

Version History

  • Introduced in EB 2.5

Methods

disable()

Disables the serial channel, preventing communication with a remote device.

Parameters

  • callback : CallBackHandler

Callback

Async Callback Returning Parameters: HASH

    • status : STRING

      Connection status will either be success or failure.

    • message : STRING

      Returns the appropriate message.

Returns

Synchronous Return:

  • Void

Platforms

  • Android

Method Access:

  • Instance Method: This method can be accessed via an instance object of this class:
    • myObject.disable()
  • Default Instance: This method can be accessed via the default instance object of this class.
    • EB.SerialComm.disable()

enable()

Enables a serial channel for the application to communicate with a remote device.

Parameters

  • callback : CallBackHandler

Callback

Async Callback Returning Parameters: HASH

    • status : STRING

      Connection status will either be success or failure.

    • message : STRING

      Returns the appropriate message.

Returns

Synchronous Return:

  • Void

Platforms

  • Android

Method Access:

  • Instance Method: This method can be accessed via an instance object of this class:
    • myObject.enable()
  • Default Instance: This method can be accessed via the default instance object of this class.
    • EB.SerialComm.enable()

enumerate()

Gets a list of supported ports on the device.

Parameters

  • callback : CallBackHandler

Callback

Async Callback Returning Parameters: ARRAY

    • Object : SELF_INSTANCE: EB.SerialComm

Returns

Synchronous Return:

  • Void

Platforms

  • Android

Method Access:

  • Class Method: This method can be accessed only using the API class object.
    • EB.SerialComm.enumerate()

getDefault()

Returns an object that represents the default instance of the API class. For example, Camera.getDefault returns a Camera object that represents the default camera.

Parameters

  • callback : CallBackHandler

Callback

Async Callback Returning Parameters: SELF_INSTANCE

    Returns

    Synchronous Return:

    • SELF_INSTANCE : Default object of Module.

    Platforms

    • Android

    Method Access:

    • Class Method: This method can only be accessed via the API class object.
      • EB.SerialComm.getDefault()

    read(STRING readTimeOut)

    Reads the available data and returns it immediately. If no data is available, waits until a timeout occurs. Null is returned if no data is available.

    Parameters

    • readTimeOut : STRING

      Wait for data until timeout. The timeout unit is milli seconds. A timeout of zero means the calling read will wait forever unless interrupted by disable or release.

    • callback : CallBackHandler

    Callback

    Async Callback Returning Parameters: HASH

      • status : STRING

        Read data status will either be success or failure.

      • message : STRING

        Returns the appropriate message.

      • data : STRING

        On Success, it will return the data.

    Returns

    Synchronous Return:

    • Void

    Platforms

    • Android

    Method Access:

    • Instance Method: This method can be accessed via an instance object of this class:
      • myObject.read(STRING readTimeOut)
    • Default Instance: This method can be accessed via the default instance object of this class.
      • EB.SerialComm.read(STRING readTimeOut)

    setDefault(SELF_INSTANCE: EB.SerialComm defaultInstance)

    Allows setting of attributes of the default object instance by passing in an object of the same class.

    Parameters

    • defaultInstance : SELF_INSTANCE: EB.SerialComm

      An instance object that is of the same class.

    • callback : CallBackHandler

    Returns

    Synchronous Return:

    • Void

    Platforms

    • Android

    Method Access:

    • Class Method: This method can be accessed only via the API class object.
      • EB.SerialComm.setDefault(SELF_INSTANCE: EB.SerialComm defaultInstance)

    write(STRING data)

    Writes from buffer to the opened communication channel.

    Parameters

    • data : STRING

      Buffer which contains the data to write.

    • callback : CallBackHandler

    Callback

    Async Callback Returning Parameters: HASH

      • status : STRING

        Write data status will either be success or failure.

      • message : STRING

        Returns the appropriate message.

    Returns

    Synchronous Return:

    • Void

    Platforms

    • Android

    Method Access:

    • Instance Method: This method can be accessed only via an instance object of this class:
      • myObject.write(STRING data)
    • Default Instance: This method can be accessed via the default instance object of this class.
      • EB.SerialComm.write(STRING data)

    Properties

    ParityBit

    Type

    STRING

    Description

    Parity bits are used for detecting error in the transmission.

    Values

    Possible Values (STRING):

    • Constant: EB.SerialComm.EVEN - String: EVEN Sets the parity bit so that the count of bits set is an even number
    • Constant: EB.SerialComm.MARK - String: MARK Leaves the parity bit set to 1.
    • Constant: EB.SerialComm.NONE - String: NONE No parity check occurs.
    • Constant: EB.SerialComm.ODD - String: ODD Sets the parity bit so that the count of bits set is an odd number.
    • Constant: EB.SerialComm.SPACE - String: SPACE Leaves the parity bit set to 0.

    Access

    • Instance: This property can be accessed via an instance object of this class: myObject.ParityBit
    • Default Instance: This property can be accessed via the default instance object of this class.
      • EB.SerialComm.ParityBit

    Platforms

    • Android

    baudRates

    Type

    STRING

    Description

    Specifies the baud at which the communications device operates.

    Values

    Possible Values (STRING):

    • Constant: EB.SerialComm.BR_300 - String: BR_300 Baud rate value is 300
    • Constant: EB.SerialComm.BR_1200 - String: BR_1200 Baud rate value is 1200
    • Constant: EB.SerialComm.BR_2400 - String: BR_2400 Baud rate value is 2400
    • Constant: EB.SerialComm.BR_4800 - String: BR_4800 Baud rate value is 4800
    • Constant: EB.SerialComm.BR_9600 - String: BR_9600 Baud rate value is 9600
    • Constant: EB.SerialComm.BR_14400 - String: BR_14400 Baud rate value is 14400
    • Constant: EB.SerialComm.BR_19200 - String: BR_19200 Baud rate value is 19200
    • Constant: EB.SerialComm.BR_28800 - String: BR_28800 Baud rate value is 28800
    • Constant: EB.SerialComm.BR_38400 - String: BR_38400 Baud rate value is 38400
    • Constant: EB.SerialComm.BR_57600 - String: BR_57600 Baud rate value is 57600
    • Constant: EB.SerialComm.BR_115200 - String: BR_115200 Baud rate value is 115200
    • Constant: EB.SerialComm.BR_230400 - String: BR_230400 Baud rate value is 230400
    • Constant: EB.SerialComm.BR_460800 - String: BR_460800 Baud rate value is 460800
    • Constant: EB.SerialComm.BR_921600 - String: BR_921600 Baud rate value is 921600

    Access

    • Instance: This property can be accessed via an instance object of this class: myObject.baudRates
    • Default Instance: This property can be accessed via the default instance object of this class.
      • EB.SerialComm.baudRates

    Platforms

    • Android

    dataBit

    Type

    STRING

    Description

    Specifies the number of data bits for each character.

    Values

    Possible Values (STRING):

    • Constant: EB.SerialComm.EIGHT - String: EIGHT Data bits per byte is 8
    • Constant: EB.SerialComm.SEVEN - String: SEVEN Data bits per byte is 7.

    Access

    • Instance: This property can be accessed via an instance object of this class: myObject.dataBit
    • Default Instance: This property can be accessed via the default instance object of this class.
      • EB.SerialComm.dataBit

    Platforms

    • Android

    flowControlMode

    Type

    STRING

    Description

    Specifies the flow control to be used.

    Values

    Possible Values (STRING):

    • Constant: EB.SerialComm.DSR_DTR - String: DSR_DTR Hardware flow control DSR/DTR
    • Constant: EB.SerialComm.NONE - String: NONE No flow control
    • Constant: EB.SerialComm.RTS_CTS - String: RTS_CTS Hardware flow control RTS/CTS
    • Constant: EB.SerialComm.XON_XOFF - String: XON_XOFF Software flow control

    Access

    • Instance: This property can be accessed via an instance object of this class: myObject.flowControlMode
    • Default Instance: This property can be accessed via the default instance object of this class.
      • EB.SerialComm.flowControlMode

    Platforms

    • Android

    friendlyName

    Type

    STRING Read Only

    Description

    Returns the friendly name associated with the Serial Port.

    Access

    • Instance: This property can be accessed via an instance object of this class: myObject.friendlyName
    • Default Instance: This property can be accessed via the default instance object of this class.
      • EB.SerialComm.friendlyName

    Platforms

    • Android

    stopBit

    Type

    STRING

    Description

    Specifies the number of stop bits to be used.

    Values

    Possible Values (STRING):

    • Constant: EB.SerialComm.ONE - String: ONE One stop bit is used.
    • Constant: EB.SerialComm.ONE_AND_HALF - String: ONE_AND_HALF 1.5 stop bits are used.
    • Constant: EB.SerialComm.TWO - String: TWO two stop bits are used.

    Access

    • Instance: This property can be accessed via an instance object of this class: myObject.stopBit
    • Default Instance: This property can be accessed via the default instance object of this class.
      • EB.SerialComm.stopBit

    Platforms

    • Android

    Examples

    Enable a Serial Comm port and read/write data

    This example shows how to enable/disable a device and to read and write data. Note that this example assumes that the ebapi-modules.js file is in the same folder as the HTML invoking it.

    
    
                                 <html>
                                  <head>
                                  <script type="text/javascript" src="ebapi-modules.js"></script> 
                                  <script>
                                  var SerialPort;
    
                                    function enumCallBack(params){
                                        alert("enumCallBack");
                                            if(params){     // Most of these methods have callbacks but null 'params' sent.
                                                //alert(params);
                                            }
    
    
                                    }
                                    function Enumerate()
                                    { 
                                    alert("enumerate");
                                      SerialPort = EB.SerialComm.enumerate(enumCallBack); 
                                        alert(SerialPort[0].getId());       
                                    }   
                                    function Enable()
                                    { 
                                        alert("Enable");
    
                                        EB.SerialComm.enable(enableCallback);
    
                                    } 
    
                                    function enableCallback(dat) {
                                    alert("enableCallback");
                                        document.getElementById("myDiv").innerHTML = "Enable:";
                                        document.getElementById("myDiv").innerHTML += "<li>Status:"+dat.status+"<br/><li>message:"+dat.message ;
                                    }
                                    function disableCallback(dat) {
                                        alert("disableCallback");
                                        document.getElementById("myDiv").innerHTML = "Disable:";
                                        document.getElementById("myDiv").innerHTML += "<li>Status:"+dat.status+"<br/><li>message:"+dat.message ;
                                    }   
                                    function Disable()
                                    { 
                                      alert("Disable");
                                      EB.SerialComm.disable(disableCallback);    
                                    }   
                                    function Read()
                                    { 
                                      alert("Read");
                                      EB.SerialComm.read("10000",readCallback);    
                                    } 
                                    function readCallback(dat) {
                                        alert("readCallback");
                                        document.getElementById("myDiv").innerHTML = "Read Data:<br/>";
                                        document.getElementById("myDiv").innerHTML += "<li>Status:"+dat.status+"<br/><li>Data:"+dat.data +"<br/><li>message:"+dat.message ;
                                    }
                                    function Write()
                                    { 
                                      alert("Write");
                                      //SerialPort[0].write("100abcd011");
                                      var writeData= document.getElementById("writeData").value;
                                      EB.SerialComm.write(writeData,writeCallback);    
                                    }
                                        function writeCallback(dat) {
                                        alert("writeCallback");
                                        document.getElementById("myDiv").innerHTML = "Write Data:<br/>";
                                        document.getElementById("myDiv").innerHTML += "<li>Status:"+dat.status+"<br/><li>message:"+dat.message ;
                                    }
                                    function SetConfig()
                                    { 
                                      alert("SetConfig");
                                      alert("Friendly name "+EB.SerialComm.friendlyName);
                                        EB.SerialComm.baudRates= EB.SerialComm.BR_9600;
                                        alert("baudRates "+EB.SerialComm.baudRates);
    
                                        EB.SerialComm.flowControlMode=EB.SerialComm.NONE;
                                        alert("flowControlMode "+EB.SerialComm.flowControlMode);
    
    
                                        EB.SerialComm.ParityBit=EB.SerialComm.NONE;
                                        alert("ParityBit "+EB.SerialComm.ParityBit);    
    
                                        EB.SerialComm.stopBit=EB.SerialComm.ONE;
                                        alert("stopBit "+EB.SerialComm.stopBit);    
    
                                        EB.SerialComm.dataBit=EB.SerialComm.EIGHT;
                                        alert("dataBit "+EB.SerialComm.dataBit);
                                    }
                                  </script>
                                  </head> 
                                  <body>
                                    <br><br> <div id="availableScanners">EnumScanners goes Here</div>
                                    <br><br> <div id=myJsID></div>
                                    <br><br> <div id="msg">Messages Go Here</div>
                                    <br><br> <input type='button' onClick="Enumerate()" value="Enumerate"/>
                                    <br><br> <input type='button' onClick="Enable()" value="Enable"/>
                                    <br><br> <input type="button" onclick="Disable()" value="Disable">
                                    <br><br> <input type="button" onclick="Read()" value="Read" />   
                                    <br><br> <input type="button" onclick="Write()" value="Write" />
                                    <input type="text" id="writeData" value="" />
                                    <br><br> <input type="button" onclick="SetConfig()" value="Set and Get Config" />
                                    <div id="myDiv"></div>
                                  </body>
                                  </html>