24-Hour Reboot
This method reboots a PCI V4 pinpad after 24 hours of continuous running time.
This table lists the supported V4 pinpads.
Model | Device Software |
---|---|
iPP320 V4 | RBA |
iSC250 V4 | RBA |
Link/2500 | UPP |
Lane/3000 | UPP |
Lane/5000 | UPP |
Self/4000 | UPP |
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
Property | Description |
---|---|
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
Property | Description |
---|---|
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
Property | Description |
---|---|
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
Property | Description |
---|---|
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);