Migrating SSSP to Tizen

This topic describes how to convert SSSP applications to Tizen.

Starting with Tizen 6.5, Samsung is not releasing any further enhancements to the Samsung Smart Signage Platform (SSSP), and the SSSP is going to be deprecated starting with Tizen 7.5. To fulfill the needs of Samsung signage partners and to replace the SSSP, Samsung has launched new Samsung Product APIs in Tizen 6.5. These new Tizen APIs are extensions of the Tizen Web Device API.

This guide describes the differences between the SSSP APIs and the new Samsung Product APIs in the following areas:

New Samsung Product APIs

Tizen 6.5 includes the following new APIs:

These APIs provide similar features as the SSSP except for functionalities not supported in Samsung devices based on Tizen 6.5. Some features, especially getting network information, are performed via the already existing Samsung Product APIs. For more details, see SSSP API vs. Samsung Product API and the API references.

Privileges

To use security-sensitive APIs, you must declare the required privileges and sign your application with a certificate for the appropriate privilege level. The new Samsung Product APIs are all partner-privileged APIs and you need to add their privileges to the "config.xml" file when developing applications. For the detailed privilege information and information on how to add privileges, see Configuring Web Applications.

SSSP API vs. Samsung Product API

The following table shows the interface mapping between the SSSP API and the Samsung Product API.

Table 1. The SSSP API vs. the Samsung Product API
SSSP API Samsung Product API
Interface Since Product
B2BDoc API Document API
6.5
B2B (LFD)
B2BControl API AvInfo API
2.3
B2B (LFD, IWB)
Network API
2.3
B2B (LFD, IWB)
ProductInfo API
2.3
B2B (LFD, IWB)
SystemControl API
6.5
B2B (LFD, IWB)
Timer API
6.5
B2B (LFD, IWB)
B2BSyncplay API Syncplay API
2.3
B2B (LFD)

B2BDoc API vs. Document API

The following table shows the methods mapping between the SSSP B2BDoc API and the Samsung Product Document API .

Table 2. SSSP B2BDoc API vs. Samsung Product Document API
SSSP API Tizen Samsung Product API B2B Product
LFD IWB
b2bdoc.openDoc() document.open() Yes No
b2bdoc.closeDoc() document.close()
b2bdoc.playDoc() document.play()
b2bdoc.stopDoc() document.stop()
b2bdoc.prevPageDoc() document.prevPage()
b2bdoc.nextPageDoc() document.nextPage()
b2bdoc.pauseDoc() document.pause()
b2bdoc.resumeDoc() document.resume()
b2bdoc.setVerticalDoc() document.setDocumentOrientation()
b2bdoc.gotoPageDoc() document.gotoPage()

B2BControl API vs. AvInfo API, Network API, SystemControl API and Timer API

The following table shows the methods mapping between the SSSP B2BControl API and the Samsung Product AvInfo API, the Network API, the SystemControl API, and the Timer API.

The following unnecessary features are no longer supported:

  • Network setting features
  • The features not provided by Samsung devices since Tizen 6.5
  • Hotel related features, which can be provided through another interface module if required
Table 3. SSSP B2BDoc API vs. Samsung Product Document API
Category SSSP API Tizen Samsung Product API B2B Product
LFD IWB
Network b2bcontrol.getMACAddress() network.getMac() Yes Yes
b2bcontrol.getIPConfigType() nework.getIpMode()
b2bcontrol.setIPConfigType() Not supported No No
b2bcontrol.getIPAddress() network.getIp() Yes Yes
b2bcontrol.setIPAddress() Not supported No No
b2bcontrol.getSubNetMask() network.getSubnet() Yes Yes
b2bcontrol.setSubnetMask() Not supported No No
b2bcontrol.getGatewayAddress() network.getGateway() Yes Yes
b2bcontrol.setGatewayAddress() Not supported No No
b2bcontrol.getDNSServer() network.getDns() Yes Yes
b2bcontrol.setDNSServer() Not supported No No
b2bcontrol.getProxyserverInfo()
b2bcontrol.setProxyserverInfo()
Remote Management b2bcontrol.getLampSchedule() systemcontrol.getScreenLampSchedule() Yes
b2bcontrol.setLampSchedule() systemcontrol.setScreenLampSchedule()
b2bcontrol.getIRLockStatus() Not supported No
b2bcontrol.setIRLockOnOff()
b2bcontrol.getButtonLockStatus()
b2bcontrol.setButtonLock()
b2bcontrol.getPanelMuteStatus() systemcontrol.getPanelMute() Yes
b2bcontrol.setPanelMute() systemcontrol.setPanelMute()
b2bcontrol.getSafetyLock() systemcontrol.getSafetyLock()
b2bcontrol.setSafetyLock() systemcontrol.setSafetyLock()
b2bcontrol.getMenuOrientation() systemcontrol.getOnScreenMenuOrientation()
b2bcontrol.setMenuOrientation() Not supported No
b2bcontrol.getSourceOrientation() systemcontrol.getSourceOrientation() Yes
b2bcontrol.setSourceOrientation() Not supported No
b2bcontrol.getSafetyScreen()
b2bcontrol.setSafetyScreen()
b2bcontrol.getOsdMute() systemcontrol.getMessageDisplay() Yes
b2bcontrol.setOsdMute() systemcontrol.setMessageDisplay()
b2bcontrol.getPCConnection() systemcontrol.getPCConnection()
b2bcontrol.setPCConnection() systemcontrol.setPCConnection()
b2bcontrol.getEcoSensor() Not supported No
b2bcontrol.setEcoSensor()
b2bcontrol.getAlarmTemperature()
b2bcontrol.setAlarmTemperature()
b2bcontrol.getSpeakerType() avinfo.getSpeakerSelection() Yes Yes
b2bcontrol.setSpeakerType() avinfo.setSpeakerSelection()
Power Control b2bcontrol.rebootDevice() systemcontrol.rebootDevice()
b2bcontrol.setPowerOff() Not supported No No
b2bcontrol.getAutoPowerOn()
b2bcontrol.setAutoPowerOn()
b2bcontrol.getMaxPowerSaving()
b2bcontrol.setMaxPowerSaving()
b2bcontrol.getEnergySavingMode()
b2bcontrol.setEnergySavingMode()
b2bcontrol.getNoSignalPowerOff()
b2bcontrol.setNoSignalPowerOff()
b2bcontrol.getStandby()
b2bcontrol.setStandby()
b2bcontrol.getNetworkStandby()
b2bcontrol.setNetworkStandby()
Firmware b2bcontrol.getFirmwareVersion() productinfo.getFirmware() Yes Yes
b2bcontrol.updateFirmware() systemcontrol.updateFirmware() No
b2bcontrol.setUpdateFirmwareProgressChangeListener() systemcontrol.setUpdateFirmwareListener()
b2bcontrol.unsetUpdateFirmwareProgressChangeListener() systemcontrol.unsetUpdateFirmwareListener()
Timer b2bcontrol.getCurrentTime() timer.getCurrentTime() Yes Yes
b2bcontrol.setCurrentTime() timer.setCurrentTime()
b2bcontrol.getOnTimer() timer.getOnTimer() No
b2bcontrol.getOnTimerVolume()
b2bcontrol.getOnTimerRepeat()
b2bcontrol.setOnTimer() timer.setOnTimer()
b2bcontrol.setOnTimerVolume()
b2bcontrol.setOnTimerRepeat()
b2bcontrol.getOffTimer() timer.getOffTimer()
b2bcontrol.getOffTimerRepeat()
b2bcontrol.setOffTimer() timer.setOffTimer()
b2bcontrol.setOffTimerRepeat()
b2bcontrol.getHolidayList() timer.getTimerHoliday()
b2bcontrol.getHolidayToTimer()
b2bcontrol.setHolidayList() timer.addHoliday()
timer.deleteHoliday()
timer.applyTimerHoliday()
b2bcontrol.setHolidayToTimer()
b2bcontrol.getDSTMode() timer.getDST() Yes
b2bcontrol.getDSTTimeOffset()
b2bcontrol.setDSTMode() timer.setDST()
b2bcontrol.setDSTTimeOffset()
b2bcontrol.getNTPUse() timer.getNTP() No
b2bcontrol.getNTPServerAddress()
b2bcontrol.getCurrentTimeZone()
b2bcontrol.setNTPUse() timer.setNTP()
b2bcontrol.setNTPServerAddress()
b2bcontrol.setCurrentTimeZone()
b2bcontrol.getSystemTimeSyncTimeout() timer.getSystemTimeSyncTimeout()
b2bcontrol.setSystemTimeSyncTimeout() timer.setSystemTimeSyncTimeout()
Hotel Features b2bcontrol.getHotelID() Not supported No
b2bcontrol.setHotelID()
b2bcontrol.deleteAppPrivateInfo()
Other b2bcontrol.getSerialNumber() systemcontrol.getSerialNumber() Yes Yes
b2bcontrol.getProductType() Not supported No No
b2bcontrol.getCurrentTemperature()
b2bcontrol.startNodeServer()
b2bcontrol.stopNodeServer()
b2bcontrol.collectLogs()
b2bcontrol.captureScreen() systemcontrol.captureScreen() Yes
b2bcontrol.getSystemUpTime() Not supported No
b2bcontrol.getNetPIP()
b2bcontrol.setNetPIP()
b2bcontrol.getURLLauncherAddress()
b2bcontrol.setURLLauncherAddress()
b2bcontrol.getURLLauncherTimeOut()
b2bcontrol.setURLLauncherTimeOut()
b2bcontrol.getMagicInfoServerUrl()
b2bcontrol.setMagicInfoServerUrl()

B2BSyncplay API vs. Syncplay API

The following table shows the methods mapping between the SSSP B2BSync API and the Samsung Product Syncplay API .

Table 4. SSSP B2BSync API vs. Samsung Product Syncplay API
SSSP API Tizen Samsung Product API B2B Product
LFD IWB
b2bsyncplay.startSyncPlay() syncplay.start() Yes No
b2bsyncplay.stopSyncPlay() syncplay.stop()
b2bsyncplay.makeSyncPlayList() syncplay.createPlaylist()
b2bsyncplay.clearSyncPlayList() syncplay.removePlaylist()

Samsung Product API JavaScript File

The SSSP Web APIs are packaged as a JavaScript file separated from the Samsung Product APIs. The package file is called "b2bapis.js". The new, on the other hand, APIs are provided as a single JavaScript package file, called "webapis.js", with other Samsung Product APIs.

To use the SSSP APIs, "b2bapis.js" must be loaded in the "index.html" file:

<script type="text/javascript" src="$B2BAPIS/b2bapis/b2bapis.js"></script>

Sample code:

var onSuccess = function(val) {
  console.log("[clearSyncPlayList] success : " + val.result);
}

var onError = function(error) {
  console.log("[clearSyncPlayList] code :" + error.code + " error name: " + error.name + "  message " + error.message);
}

try {
  b2bapis.b2bsyncplay.clearSyncPlayList(onSuccess, onError);
} catch catch (e) {
    console.log("[clearSyncPlayList] call syncFunction exception [" + e.code + "] name: " + e.name + " message: " + e.message);
}

To use the Samsung Product API, "webapis.js" needs to be loaded in "index.html" file:

<script type="text/javascript" src="$WEBAPIS/webapis/webapis.js"></script>

Sample code:

var onsuccess = function(val) {
  console.log("[removePlaylist] success : " + val.result);
}
var onerror = function(error) {
  console.log("[removePlaylist] code :" + error.code + " error name: " + error.name + "  message " + error.message);
}

try {
  webapis.syncplay.removePlaylist(onsuccess, onerror);
} catch (e) {
  console.log("[removePlaylist] call syncFunction exception [" + e.code + "] name: " + e.name + " message: " + e.message);
}

Prerequisites for Migration

  • To use the new Samune Product APIs, partner level certificate is required.
  • In "config.xml", set required_version to “6.5”.
  • The "tv-samsung 6.5" profile is supported since Tizen Studio 4.5.1.
  • Add <script type='text/javascript' language='javascript' src='$WEBAPIS/webapis/webapis.js'></script> to "index.html" file.
  • Remove <script type="text/javascript" src="$B2BAPIS/b2bapis/b2bapis.js"> </script> from "index.html" file.
  • Replace the SSSP privileges with corresponding to new Samsung Product APIs in "config.xml".