Volume Control

You can change the volume on the card reader.

note

This feature is only supported on RBA/UPP pinpads.

Code Samples - Set Volume On Card Reader

CWS

Request

PropertyDescription
method
string | required
setVolumeOnCardReader
requestId
string | required
Request ID
targetType
string | required
cardReader
version
string | required
1.0
parameters
JSONObject | optional
All relevant parameters.

Response

PropertyDescription
requestId
string
Request ID
As specified in the request.
statusDetails
string
Request Status
data
JSONObject
Object holding various responses

Request

{
  "method" : "setVolumeOnCardReader",
  "requestId" : "1916281794",
  "targetType" : "cardReader",
  "version" : "1.0",
  "parameters" : {
    "volume" : "x"
  }
}

Later to query the status of the request

{
  "method" : "getCommandStatusOnCardReader",
  "requestId" : "1916281795",
  "targetType" : "cardReader",
  "version" : "1.0",
  "parameters" : {
    "id" : "1916281794"
  }
}

Response

Initial response

{
  "method" : "getCommandStatusOnCardReader",
  "requestId" : "1916281796",
  "targetType" : "cardReader",
  "version" : "1.0",
  "parameters" : {
    "id" : "1916281794"
  }
}

Complete response

{
  "requestId" : "1916281796",
  "statusDetails" : "REQUEST_ACCEPTED",
  "data" : {
    "cardReaderCommand" : {
      "id" : "1916281794",
      "completed" : true,
      "eventQueue" : [ {
        "timeStamp" : "1664916260267",
        "statusDetails" : "CARD_READER_UPDATE_VOLUME_COMPLETED"
      }, {
        "timeStamp" : "1664916260267",
        "statusDetails" : "SET_VOLUME_SUCCEEDED"
      } ]
    }
  }
}

Java

// use local copy of ECLCardReaderInterface named cardReaderInterface
 cardReaderInterface.updateVolume(volume, new ECLCardReaderSetVolumeListener()
            {
                @Override public void deviceOperationCompleted(ECLCardReaderInterface eclCardReaderInterface,
                    ECLTransactionProgress eclTransactionProgress)
                {
                    //set volume succeeded successfully
                }
 
                @Override public void deviceOperationError(ECLCardReaderInterface eclCardReaderInterface, ECCError eccError)
                {
                    //there was an error
                }
 
                @Override public void deviceOperationProgress(ECLCardReaderInterface eclCardReaderInterface,
                    ECLTransactionProgress eclTransactionProgress)
                {
                    //volume update in progress
                }
            });

Objective-C

// Set volume on card reader
[cardReader updateVolume:self volume:volume];
 
// Implement ECLCardReaderUpdateVolumeDelegate callback methods
- (void)cardReaderUpdateVolumeSuccess:(id<ECLCardReaderProtocol>)cardReader {
    //set volume succeeded
}
 
- (void)cardReaderUpdateVolumeError:(id<ECLCardReaderProtocol>)cardReader error:(NSError *)error {
    //there was an error
}
 
- (void)cardReaderProgress:(id<ECLCardReaderProtocol>)cardReader progress:(ECLTransactionProgress)progress {
    //volume update in progress
}

C#

/* Asynchronous */        
        m_CWS.StartSetVolumeOnCardReader(null, volume, MyNotifyCWSEvent, rc);  
/* Synchronous */        
        StartSetVolumeOnCardReader(selectedDeviceSerialNumber, volume, ne, rc);

Get Volume On Card Reader

CWS

Request

PropertyDescription
method
string | required
getVolumeOnCardReader
requestId
string | required
Request ID
targetType
string | required
cardReader
version
string | required
1.0
parameters
JSONObject | optional
All relevant parameters.

Response

PropertyDescription
requestId
string
Request ID
As specified in the request.
statusDetails
string
Request Status
data
JSONObject
Object holding various responses

Request

{
  "method" : "getVolumeOnCardReader",
  "requestId" : "988110367",
  "targetType" : "cardReader",
  "version" : "1.0",
  "parameters" : { }
}

Later to query the status of the request

{
  "method" : "getCommandStatusOnCardReader",
  "requestId" : "988110368",
  "targetType" : "cardReader",
  "version" : "1.0",
  "parameters" : {
    "id" : "988110367"
  }

Response

Initial response

{
  "method" : "getCommandStatusOnCardReader",
  "requestId" : "988110368",
  "targetType" : "cardReader",
  "version" : "1.0",
  "parameters" : {
    "id" : "988110367"
  }

Complete response

{
  "requestId" : "988110368",
  "statusDetails" : "REQUEST_ACCEPTED",
  "data" : {
    "cardReaderCommand" : {
      "id" : "988110367",
      "completed" : true,
      "eventQueue" : [ {
        "timeStamp" : "1666904684450",
        "statusDetails" : "GET_VOLUME_SUCCEEDED"
      } ],
      "volumeData" : {
        "volumeLevel" : "LOW"
      }
    }
  }

Java

// use local copy of ECLCardReaderInterface named cardReaderInterface  
cardReaderInterface.getVolume(new ECLCardReaderGetVolumeListener()
        {
            @Override public void deviceOperationCompleted(ECLCardReaderInterface eclCardReaderInterface,
                ECLVolumeLevel volumeLevel)
            {
                //get volume succeeded successfully
            }
 
            @Override
            public void deviceOperationError(ECLCardReaderInterface eclCardReaderInterface, ECCError eccError)
            {
                //there was an error
            }
 
            @Override
            public void deviceOperationProgress(ECLCardReaderInterface eclCardReaderInterface,
                ECLTransactionProgress eclTransactionProgress)
            {
                //volume retrieval in progress
            }
        });

Objective-C

ECLVolumeLevel deviceVolume = [cardReader retrieveVolume];

C#

/* Asynchronous */            
        m_CWS.StartGetCardReaderVolume(MyNotifyCWSEvent, MyGetVolumeLevelComplete);