Achtung: Diese Dokumentation bezieht sich auf den aktuellen Stand der jeweiligen Bibliotheken oder Controlerweiterung.
CONTROL-WinCC OA
#uses "SLTLicenseCtrlExt"
Die SLTLicense muss nicht instanziiert werden. Jedoch muss #uses "SLTLicenseCtrlExt" verwendet werden um die von SloopTools im Installation Layer mitgelieferte CtrlExt einzubinden.
C++
Link zur Ermittlung der Item Number oder dem Product Code
std::string projectName = Resources::getProjectName(); //WinCC OA API functionality
std::string serverAddress = Resources::getEventHostName();
std::string productCode = "YOUR_ITEM_NUMBER_OR_PRODUCT_CODE";
SLTLicenseCheck licenseCheck(_projectName, configValueStr);
licenseCheck.setItemNumber(productCodeStr);
Wenn mehr als ein Produkt geprüft werden soll, muss vor der nächsten Überprüfung der zu prüfende Produktcode mit setItemNumber gesetzt werden.
C#
Link zur Ermittlung der Item Number oder dem Product Code
string productCode = "YOUR_ITEM_NUMBER_OR_PRODUCT_CODE";
string projectName = ETM.WCCOA.Internal.Resources.GetProjectName();
string serverAddress = ETM.WCCOA.Internal.Resources.GetEventHostName();
SLTLicense sltLicense = new SLTLicense(productCode, projectName, serverAddress);
CONTROL-WinCC OA
if ( sltCheckLicense("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE") )
{
//do something
}
C++
Link zur Ermittlung der Add-on Internal Version
std::string internalVersionStr = "YOUR_ADDON_INTERNAL_VERSION";
RETURN_VALUES value = licenseCheck.sltCheckLicense(internalVersionStr);
if ( value == RETURN_VALUES::OK )
{
//do something
}
else
{
if ( value == RETURN_VALUES::NOK )
{
//e.g.: Error message
}
else //Return_VALUES::WRONG_VERSION
{
//e.g.: Wrong version message
}
}
C#
Link zur Ermittlung der Add-on Internal Version
string internalVersion = "YOUR_ADDON_INTERNAL_VERSION";
RETURN_VALUES_W value = licenseCheck.sltCheckLicense(internalVersion);
if (value == RETURN_VALUES_W.OK)
{
//do something
}
else
{
if (value == RETURN_VALUES_W.NOK)
{
//e.g.: Error message
}
else //Return_VALUES_W.WRONG_VERSION
{
//e.g.: Wrong version message
}
}
CONTROL-WinCC OA
if ( sltOccupyLicense("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE") )
{
//do something
//when finished
sltReleaseLicense("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE");
}
C++
Achtung: Um diese Methode verwenden zu können wird die aktuellste Version von die SLTLicense Bibliothek benötigt.
Link zur Ermittlung der Add-on Internal Version
std::string internalVersionStr = "YOUR_ADDON_INTERNAL_VERSION";
RETURN_VALUES value = licenseCheck.sltOccupyLicense(internalVersionStr);
if ( value == RETURN_VALUES::OK )
{
//do something
//when finished
licenseCheck.sltReleaseLicense();
}
else
{
if ( value == RETURN_VALUES::NOK )
{
//e.g.: Error message
}
else if ( value == RETURN_VALUES::WRONG_VERSION )
{
//e.g.: "Wrong version" message
}
else if ( value == RETURN_VALUES::ALREADY_OCCUPIED )
{
//e.g.: "License already in use" message
}
}
C#
Zuerzeit nicht verfügbar
Wenn die Lizenz den UnitCounter = 0 erreicht wird die Lizenz ungültig. Die normale Lizenzprüfung "sltCheckLicense" liefert dann ein negativen Wert zurück.
CONTROL-WinCC OA
int unitCounter = sltDecreaseUnitCounter("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE", amount);
C++
int unitCounter = licenseCheck.sltDecreaseUnitCounter(amount);
C#
int unitCounter = licenseCheck.sltDecreaseUnitCounter(amount);
Wenn diese Methode/Funktion verwendet wird kann der Einheitenzähler nicht kleiner als 1 reduziert werden. Dadurch wird die Lizenz nicht ungültig. Jedoch muss manuell geprüft werden ob das Minimum schon erreicht wurde um die daran gebundene Funktionalität deaktiviert werden. Beispiel: Es dürfen keine weitere UIs regestriert werden.
CONTROL-WinCC OA
int unitCounter = sltDecreaseUnitCounterChecked("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE", amount);
if ( unitCounter == 1 )
{
//e.g.: warning no more units & disable functionality
}
C++
int unitCounter = licenseCheck.sltDecreaseUnitCounterChecked(amount);
if ( unitCounter == 1 )
{
//e.g.: warning no more units & disable functionality
}
C#
int unitCounter = licenseCheck.sltDecreaseUnitCounterChecked(amount);
if ( unitCounter == 1 )
{
//e.g.: warning no more units & disable functionality
}
Fragt den UnitCounter der Lizenz ab. (Nur wenn ein UnitCounter vorhanden ist)
CONTROL-WinCC OA
Link zur Ermittlung der Item Number oder dem Product Code
int unitCounter = sltGetUnitCounter("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE");
C++
int unitCounter = licenseCheck.sltGetUnitCounter();
C#
int unitCounter = licenseCheck.sltGetUnitCounter();
Liefert den Int Wert der 32Bit FeatureMap. Bei diesen Wert muss dann geprüft werden ob welche Bits gesetzt sind um dann die jeweiligen Funktionen freischalten zu können.
CONTROL-WinCC OA
Link zur Ermittlung der Item Number oder dem Product Code
int featureMap = sltGetFeatureMap("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE");
bool is_set = (featureMap & (1 << pos)) != 0;
if ( is_set )
{
//e.g.: unlock functionality
}
C++
int featureMap = licenseCheck.sltGetFeatureMap(); //Featuremap as int
typedef std::bitset<sizeof(int)> IntBits;
bool is_set = IntBits(featureMap).test(position); //check bit(position) from featureMap
if ( is_set )
{
//e.g.: unlock functionality
}
C#
int featureMap = licenseCheck.sltGetFeatureMap(); //Featuremap as int
bool is_set = (featureMap & (1 << pos)) != 0;
if ( is_set )
{
//e.g.: unlock functionality
}
Liefert den Produkttext aus der Lizenz. Aus diesem lässt sich auch eruieren, ob die Lizenz eine Demo Lizenz ist. Man kann dann für die Demo-Periode spezielle Features für den Kunden freischalten.
CONTROL-WinCC OA
Link zur Ermittlung der Item Number oder dem Product Code
string productText = sltGetProductText("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE");
if ( strpos(productText,"- DEMO |") >= 0 )
{
//e.g.: unlock demo special demo functionality
}
C++
std::string productText = licenseCheck.sltGetProductText();
if ( productText.find("- DEMO |") != std::string::npos )
{
//e.g.: unlock demo special demo functionality
}
C#
Zuerzeit nicht verfügbar
Wenn bestimmte Daten der Lizenz benötigt werden kann dies mit dieser Methode/Funktion abgefragt werden. Benötigt wird der Index der zu abfragenden Information.
Name | Index | Display name |
---|---|---|
Bestelldaten | 0 | OrderData |
Ticket | 10 | Ticket |
Software | 11 | Software |
Projektinfo | 12 | ProjectInfo |
User der die Lizenz aktivierte | 13 | ActivationUser |
Aktivierungsdaten | 14 | ActivationData |
Addon Version bei der Aktivierung | 15 | ActivationVersion |
Provider Bestelldaten | 20 | ProviderOrderData |
Provider Aktivierungsdaten | 30 | ProviderActivationData |
Provider Secret Key | 99 | ProviderSecretKey |
CONTROL-WinCC OA
Link zur Ermittlung der Item Number oder dem Product Code
string data = sltGetExtendedData("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE", index)
string providerOrderData = sltGetProviderOrderData("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE")
string providerActivationData = sltGetProviderActivationData("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE")
C++
std::string data = licenseCheck.sltGetExtendedData(index);
C#
string data = licenseCheck.sltGetExtendedData(index);
Hiermit lassen sich die Sekunden ermitteln bis zu dem Zeitpunkt an dem die Lizenz ungültig ist. Nur möglich mit Subscription Lizenze.
CONTROL-WinCC OA
Link zur Ermittlung der Item Number oder dem Product Code
time elapsedSeconds = sltGetExpirationTime("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE");
C++
time_t elapsedSeconds = licenseCheck.sltGetExpirationTime();
TimeVar timeVar.setValue(BC_CTime(elapsedSeconds), 0);
C#
time_t elapsedSeconds = licenseCheck.sltGetExpirationTime();
Wenn die installierte Version des Add-ons größer ist als die Version für die die Lizenz aktiviert wurde, wird FALSE zurückgeleifert.
CONTROL-WinCC OA
Link zur Ermittlung der Item Number oder dem Product Code
bool suitableVersion = sltCheckAddonVersion("YOUR_ITEM_NUMBER_OR_PRODUCT_CODE");
C++
Link zur Ermittlung der Add-on Internal Version
bool suitableVersion = licenseCheck.sltCheckAddonVersion("YOUR_ADDON_INTERNAL_VERSION");
C#
Link zur Ermittlung der Add-on Internal Version
bool suitableVersion = licenseCheck.sltCheckAddonVersion("YOUR_ADDON_INTERNAL_VERSION");
Gibt den zuletzt aufgetretener Fehler zurück.
CONTROL-WinCC OA
mapping lastError = sltGetLastError();
C++
Achtung: Um diese Methode verwenden zu können wird die aktuellste Version von die SLTLicense Bibliothek benötigt.
Gibt den von der CmEmbedded Bibliothek zuletzt gesetzten Error Code zurück.
int errorCode = licenseCheck.sltGetLastErrorCode();
C#
Currently not available