24-Hour Reboot

This method reboots a PCI V4 pinpad after 24 hours of continuous running time.

This table lists the supported V4 pinpads.

ModelDevice Software
iPP320 V4RBA
iSC250 V4RBA
Link/2500UPP
Lane/3000UPP
Lane/5000UPP
Self/4000UPP

note

This method requires a valid V4 connected card reader.

By default, Commerce SDK will set the reboot time for these devices so that the automatic reboot will occur at 4:00 AM point-of-sale time. This default reboot time will be set upon the first connection to the device as part of the configuration update. Note that for the iPP320 and the iSC250, there are also V3 versions which do not need to meet the 24-hour reboot requirement, and the reboot time will not be set for these devices.

In order to meet the specific needs of the customer, the reboot time can be changed to another time using the on-demand daily reboot time API. Each time the reboot time is changed, the pinpad will do an additional reboot to apply the change. You can also set up a listener to be notified 15 minutes and 90 seconds prior to the reboot time being reached.

Note that with older CSDK versions, the set reboot time for UPP devices is not the exact time the device will reboot. There is a 30-minute window after the set reboot time, and it may reboot at any point during this window. For example, if the reboot time is set to the default 4:00 AM, then the device may reboot at any point from 4:00 AM to 4:30 AM.

Starting with Commerce SDK 5.2, the new 24-hour reboot option allows the UPP card reader to reboot at the exact set reboot time, instead of the previous 30-minute window.

Code Samples

CWS

Request

PropertyDescription
method
string | required
setDailyRebootTimeOnCardReader
requestId
string | required
Transaction Request ID
targetType
string | required
cardReader
parameters
JSONObject | required
All relevant parameters to setting the reboot time.
rebootTime
JSONObject | required
Reboot Time
Object holding the reboot time properties.
hour
int | optional
Hour
Valid value: 0 - 23
minute
int | optional
Minute
Valid value: 0 - 59

Response

PropertyDescription
requestId
string
Transaction Request ID
As specified in the request.
statusDetails
string
Request Status
data
JSONObject
Object holding various responses.
completed
boolean
Request Result
Card reader reboot time setting result.

Example

Request
{
  "method" : "setDailyRebootTimeOnCardReader",
  "requestId" : "1771761000",
  "targetType" : "cardReader",
  "version" : "1.0",
  "parameters" : {
    "rebootTime" : {
      "hour" : 5,
      "minute" : 35
    }
  }
}

Later to query the status of the command.

{
  "method" : "getCommandStatusOnCardReader",
  "requestId" : "1771761003",
  "targetType" : "cardReader",
  "version" : "1.0",
  "parameters" : {
    "id" : "1771761000"
  }
}
Response
Not Yet Complete
{
  "requestId" : "1771761000",
  "statusDetails" : "REQUEST_ACCEPTED",
  "data" : {
    "cardReaderCommand" : {
      "id" : "1771761000",
      "completed" : false,
      "eventQueue" : [ ]
    }
  }
}
Complete
// Note that the pin pad reboots and there is a disconnected event
{
  "requestId" : "1771761003",
  "statusDetails" : "REQUEST_ACCEPTED",
  "data" : {
    "cardReaderCommand" : {
      "id" : "1771761000",
      "completed" : true,
      "eventQueue" : [ {
        "timeStamp" : "1548701990376",
        "statusDetails" : "PIN_PAD_REBOOTING"
      }, {
        "timeStamp" : "1548701990378",
        "statusDetails" : "SET_DAILY_REBOOT_TIME_COMPLETED"
      }, {
        "timeStamp" : "1548701990379",
        "statusDetails" : "SET_REBOOT_TIME_SUCCEEDED"
      }, {
        "timeStamp" : "1548701990381",
        "statusDetails" : "PIN_PAD_DISCONNECTED"
      } ]
    }
  }
}

Request

PropertyDescription
method
string | required
getDailyRebootTimeOnCardReader
requestId
string | required
Transaction Request ID
targetType
string | required
cardReader
parameters
JSONObject | required
All relevant parameters to retrieving the daily reboot time.

Response

PropertyDescription
requestId
string
Transaction Request ID
As specified in the request.
statusDetails
string
Request Status
data
JSONObject
Object holding various responses.
completed
boolean
Request Result
Card reader reboot time setting result.
rebootTime
JSONObject
Reboot Time
Object holding the reboot time properties.
hour
int
Hour
Valid value: 0 - 23
minute
int
Minute
Valid value: 0 - 59

Example

Request
{
  "method" : "getDailyRebootTimeOnCardReader",
  "requestId" : "1771761004",
  "targetType" : "cardReader",
  "version" : "1.0",
  "parameters" : { }
}

Later to query the status of the command.

{
  "method" : "getCommandStatusOnCardReader",
  "requestId" : "1771761005",
  "targetType" : "cardReader",
  "version" : "1.0",
  "parameters" : {
    "id" : "1771761004"
  }
}
Response
Not Yet Complete
{
  "requestId" : "1771761004",
  "statusDetails" : "REQUEST_ACCEPTED",
  "data" : {
    "cardReaderCommand" : {
      "id" : "1771761004",
      "completed" : false,
      "eventQueue" : [ ]
    }
  }
}
Complete
{
  "requestId" : "1771761005",
  "statusDetails" : "REQUEST_ACCEPTED",
  "data" : {
    "cardReaderCommand" : {
      "id" : "1771761004",
      "completed" : true,
      "eventQueue" : [ {
        "timeStamp" : "1548702773647",
        "statusDetails" : "GET_REBOOT_TIME_SUCCEEDED"
      } ],
      "dailyRebootTimeData" : {
        "rebootTime" : {
          "hour" : 5,
          "minute: 35
        }
      }
    }
  }
}

Java

// want to set reboot time to 5:35 AM
// to reset the reboot time to default, pass in null
ECLTime rebootTime = new ECLTime(5, 35);

// connected card reader
ECLCardReaderInterface cardReaderInterface = account.getCardReaders().getSelectedDevice();
cardReaderInterface.setDailyRebootTime(rebootTime, new ECLCardReaderSetDailyRebootTimeListener()
{
    // implement listener
});

// get the reboot time
cardReaderInterface.getDailyRebootTime(new ECLCardReaderGetDailyRebootTimeListener()
{
    // implement listener
});

Objective-C

// want to set reboot time to 5:35 AM
// to reset the reboot time to default, pass in NULL
ECLTime *wantedRebootTime = [[ECLTime alloc] initWithHour:5 minute:35];
// pass in reboot time and implementation of ECLCardReaderSetDailyRebootTimeDelegate
[cardReader setDailyRebootTime:wantedRebootTime delegate:self];

// get the reboot time
// pass in implementation of ECLCardReaderGetDailyRebootTimeDelegate
[cardReader getDailyRebootTime:self];

C#

// set reboot time
// delegate to handle results
private void MySetRebootTimeComplete(SetDailyRebootTimeResults drt)
{
    String error = drt.Error;
    if ((null != error) && (error.Length > 0))
    {
        // setting reboot time failed
    }
    else
    {
        // setting reboot time was successful
    }
}

Time args = new Time(5, 35);
m_CWS.StartSetDailyRebootTime(args, MyNotifyCWSEvent, MySetRebootTimeComplete);

// get reboot time
// delegate to handle results
private void MyGetRebootTimeComplete(GetDailyRebootTimeResults drt)
{
    Time rebootTime = drt.GetRebootTime;
    if (null != rebootTime)
    {
        // handle reboot time result
    }
}

m_CWS.StartGetDailyRebootTime(MyNotifyCWSEvent, MyGetRebootTimeComplete);