Code Snippets


Achtung: Diese Dokumentation bezieht sich auf den aktuellen Stand der jeweiligen Bibliotheken oder Controlerweiterung.

SLTLicense instanziieren

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);

Lizenz überprüfen

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
    }
}

Lizenz belegen & freigeben

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


Verringern des Einheitenzähler

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);

Verringern des Einheitenzähler (Begrenzt)

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
}

Einheitenzähler auslesen

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();

Featuremap überprüfen

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
}

Produkttext auslesen

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


Erweiterte Daten der Lizenz auslesen

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);

Ablaufzeit ermitteln

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();

Add-on Version überprüfen

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");

Letzten Fehler ausgeben

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


results matching ""

    No results matching ""