SDK development libraries for PHP, Python, JavaScript and C# for a car radio unlock code calculator.
To use all features of the Radio Code Calculator API, use the SDKs for your programming language.
The Web API
service is based on a simple POST request and a response encoded in JSON format.
For faster deployment, Web API installation packages have been uploaded to popular repositories and their source codes have been additionally published on GitHub:
Language | Installation | Package | Sources |
---|---|---|---|
Run:
or add the following to
|
Packagist | GitHub | |
pip install radio-code-calculator |
PyPI | GitHub | |
Run
or add the following to
|
npm | GitHub |
Each calculator requires a different format of input data, such as the serial number of the radio, to correctly generate the unlock code. If an incorrect data format is provided, the unlock code cannot be generated.
The data formats are verified in the programming library in online mode and optionally in offline mode. Below are the required formats for input data:
Car | Description | Length | RegEx (PCRE) | |
---|---|---|---|---|
Renault & Dacia | PreCode, where the first character is always the letter A..Z followed by three digits 0..9 | 4 | /^([A-Z]{1}[0-9]{3})$/ |
|
Ford M Serial | Pre code consists of six digits (ignore and DO NOT type the first letter M). | 6 | /^([0-9]{6})$/ |
|
Ford V Serial | Pre code consists of six digits (ignore and DO NOT type the first letter V). | 6 | /^([0-9]{6})$/ |
|
Ford TravelPilot EX, FX & NX | The last 7 digits of the serial number. | 7 | /^([0-9]{7})$/ |
|
Toyota ERC | The ERC code consists of 16 numbers and letters. | 16 | /^([A-Z0-9]{16})$/i |
|
Jeep Cherokee | The serial number is 14 characters and numbers (omit spaces). Make sure the supplier code starts with the digits 17719 |
14 | /^([A-Z0-9]{10}[0-9]{4})$/i |
|
Chrysler Panasonic TM9 | The last 4 digits of the serial number. Make sure the serial number starts with the characters TM9 e.g. T M9 XXX X X1234 . |
4 | /^([0-9]{4})$/ |
|
Chrysler Dodge Uconnect VP2 | The last 4 characters of the serial number. Make sure the serial number starts with the characters TVPQN and radio model is VP2 . |
4 | /^([A-Z0-9]{4})$/ |
|
Fiat Stilo & Bravo (Visteon) | Pre code consists of six digits (ignore and DO NOT type the first letter M). | 6 | /^([A-Z0-9]{6})$/i |
|
Fiat DAIICHI MOPAR | The last 4 digits of the serial number (ignore and DO NOT type the first letter). | 4 | /^([0-9]{4})$/i |
|
Fiat 250 & 500 VP1/VP2 | The serial number starts with A2C followed by 16 digits. Enter the last 4 digits of the serial number.. | 4 | /^([0-9]{4})$/i |
|
Nissan Immobiliser PIN | The glove box code consists of 16 numbers and letters. | 12 | /^([A-Z0-9]{12})$/i |
|
Eclipse ESN | The ESN code consists of 16 numbers and letters. | 6 | /^([A-Z0-9]{6})$/i |
|
Jaguar Alpine | The last 5 digits of the serial number. | 5 | /^([0-9]{5})$/ |
This example demonstrates code generation for a selected radio model. All input parameter validation is done on the server side and if the radio serial number has an invalid length or pattern - the service will return an error.
<?php declare(strict_types=1);
/******************************************************************************
*
* Radio Code Calculator API - WebApi interface usage example
*
* In this example, we will demonstrate how to generate a code for a specific
* type of car radio.
*
* Version : v1.1.5
* PHP : >= 8
* Dependencies : cURL
* Author : Bartosz Wójcik (support@pelock.com)
* Project : https://www.pelock.com/products/radio-code-calculator
* Homepage : https://www.pelock.com
*
* @link https://www.pelock.com/products/radio-code-calculator
* @copyright Copyright (c) 2021-2024 PELock LLC
* @license Apache-2.0
*
/*****************************************************************************/
//
// include Radio Code Calculator API module
//
use PELock\RadioCodeCalculator\RadioCodeCalculator;
use PELock\RadioCodeCalculator\RadioErrors;
use PELock\RadioCodeCalculator\RadioModels;
//
// create Radio Code Calculator API class instance (we are using our activation key)
//
$myRadioCodeCalculator = new RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD");
//
// generate radio code (using Web API)
//
list($error, $result) = $myRadioCodeCalculator->calc(RadioModels::get(RadioModels::FORD_M_SERIES), "123456");
switch($error)
{
case RadioErrors::SUCCESS: echo "Radio code is " . $result["code"]; break;
case RadioErrors::INVALID_RADIO_MODEL: echo "Invalid radio model (not supported)"; break;
case RadioErrors::INVALID_SERIAL_LENGTH: echo "Invalid serial number length (expected " . $result["serialMaxLen"] . " characters)"; break;
case RadioErrors::INVALID_SERIAL_PATTERN: echo "Invalid serial number regular expression pattern (expected " . $result["serialRegexPattern"]["php"] . " regex pattern)"; break;
case RadioErrors::INVALID_SERIAL_NOT_SUPPORTED: echo "This serial number is not supported"; break;
case RadioErrors::INVALID_EXTRA_LENGTH: echo "Invalid extra data length (expected " . $result["extraMaxLen"] . " characters)"; break;
case RadioErrors::INVALID_EXTRA_PATTERN: echo "Invalid extra data regular expression pattern (expected " . $result["extraRegexPattern"]["php"] . " regex pattern"; break;
case RadioErrors::INVALID_INPUT: echo "Invalid input data"; break;
case RadioErrors::INVALID_COMMAND: echo "Invalid command sent to the Web API interface"; break;
case RadioErrors::INVALID_LICENSE: echo "Invalid license key!"; break;
default: echo "Something unexpected happen while trying to login to the service (error code {error})."; break;
}
#!/usr/bin/env python
###############################################################################
#
# Radio Code Calculator API - WebApi interface usage example
#
# In this example, we will demonstrate how to generate a code for a specific
# type of car radio.
#
# Version : v1.1.0
# Language : Python
# Author : Bartosz Wójcik
# Project : https://www.pelock.com/products/radio-code-calculator
# Homepage : https://www.pelock.com
#
###############################################################################
#
# include Radio Code Calculator API module
#
from radio_code_calculator import *
#
# create Radio Code Calculator API class instance (we are using our activation key)
#
myRadioCodeCalculator = RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD")
#
# generate radio code (using Web API)
#
error, result = myRadioCodeCalculator.calc(RadioModels.FORD_M_SERIES, "123456")
if error == RadioErrors.SUCCESS:
print(f'Radio code is {result["code"]}')
elif error == RadioErrors.INVALID_RADIO_MODEL:
print("Invalid radio model (not supported)")
elif error == RadioErrors.INVALID_SERIAL_LENGTH:
print(f'Invalid serial number length (expected {result["serialMaxLen"]} characters)')
elif error == RadioErrors.INVALID_SERIAL_PATTERN:
print(f'Invalid serial number regular expression pattern (expected {result["serialRegexPattern"]["python"]} regex pattern)')
elif error == RadioErrors.INVALID_SERIAL_NOT_SUPPORTED:
print("This serial number is not supported")
elif error == RadioErrors.INVALID_EXTRA_LENGTH:
print(f'Invalid extra data length (expected {result["extraMaxLen"]} characters)')
elif error == RadioErrors.INVALID_EXTRA_PATTERN:
print(f'Invalid extra data regular expression pattern (expected {result["extraRegexPattern"]["python"]} regex pattern)')
elif error == RadioErrors.INVALID_INPUT:
print("Invalid input data")
elif error == RadioErrors.INVALID_COMMAND:
print("Invalid command sent to the Web API interface")
elif error == RadioErrors.INVALID_LICENSE:
print("Invalid license key")
elif error == RadioErrors.ERROR_CONNECTION:
print("Something unexpected happen while trying to login to the service.")
else:
print(f'Unknown error {error}')
"use strict";
/******************************************************************************
*
* Radio Code Calculator API - WebApi interface usage example
*
* In this example, we will demonstrate how to generate a code for a specific
* type of car radio.
*
* Version : v1.1.5
* JS : ES6
* Dependencies : radio-code-calculator
* Author : Bartosz Wójcik (support@pelock.com)
* Project : https://www.pelock.com/products/radio-code-calculator
* Homepage : https://www.pelock.com
*
* @link https://www.pelock.com/products/radio-code-calculator
* @copyright Copyright (c) 2021-2024 PELock LLC
* @license Apache-2.0
*
/*****************************************************************************/
//
// include Radio Code Calculator API module
//
import { RadioCodeCalculator, RadioErrors, RadioModel, RadioModels } from "radio-code-calculator";
//
// create Radio Code Calculator API class instance (we are using our activation key)
//
let myRadioCodeCalculator = new RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD");
//
// generate radio code (using Web API)
//
myRadioCodeCalculator.calc(RadioModels.FORD_M_SERIES, "123456").then((result) => {
console.log("Radio code is " + result["code"]);
}).catch((error) => {
switch(error["error"])
{
case RadioErrors.INVALID_RADIO_MODEL: console.log("Invalid radio model (not supported)"); break;
case RadioErrors.INVALID_SERIAL_LENGTH: console.log("Invalid serial number length (expected " + result["serialMaxLen"] + " characters)"); break;
case RadioErrors.INVALID_SERIAL_PATTERN: console.log("Invalid serial number regular expression pattern (expected " + result["serialRegexPattern"]["php"] + " regex pattern)"); break;
case RadioErrors.INVALID_SERIAL_NOT_SUPPORTED: console.log("This serial number is not supported"); break;
case RadioErrors.INVALID_EXTRA_LENGTH: console.log("Invalid extra data length (expected " + result["extraMaxLen"] + " characters)"); break;
case RadioErrors.INVALID_EXTRA_PATTERN: console.log("Invalid extra data regular expression pattern (expected " + result["extraRegexPattern"]["php"] + " regex pattern"); break;
case RadioErrors.INVALID_INPUT: console.log("Invalid input data"); break;
case RadioErrors.INVALID_COMMAND: console.log("Invalid command sent to the Web API interface"); break;
case RadioErrors.INVALID_LICENSE: console.log("Invalid license key!"); break;
default: console.log(`Something unexpected happen while trying to login to the service (error code ${error}).`); break;
}
});
Radio codes are generated based on input parameters such as the radio's serial number, among others.
Radio serial numbers are different for different radios, they have different lengths and different patterns, some may consist of just digits e.g. 1234
, while others may consist of digits and letters e.g. AB1234XYZ
.
Validation of this data is done on the server side. However, to make things more efficient, we can use the information about available limits and patterns of particular serial numbers to, for example, set these limits in controls in our own applications without unnecessary calls to the Web API
.
<?php declare(strict_types=1);
/******************************************************************************
*
* Radio Code Calculator API - WebApi interface usage example
*
* In this example, we will demonstrate how to generate a code for a specific
* type of car radio. This example shows how to use an extended offline
* validation.
*
* Version : v1.1.5
* PHP : >= 8
* Dependencies : cURL
* Author : Bartosz Wójcik (support@pelock.com)
* Project : https://www.pelock.com/products/radio-code-calculator
* Homepage : https://www.pelock.com
*
* @link https://www.pelock.com/products/radio-code-calculator
* @copyright Copyright (c) 2021-2024 PELock LLC
* @license Apache-2.0
*
/*****************************************************************************/
//
// include Radio Code Calculator API module
//
use PELock\RadioCodeCalculator\RadioCodeCalculator;
use PELock\RadioCodeCalculator\RadioErrors;
use PELock\RadioCodeCalculator\RadioModel;
use PELock\RadioCodeCalculator\RadioModels;
//
// create Radio Code Calculator API class instance (we are using our activation key)
//
$myRadioCodeCalculator = new RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD");
//
// generate a single radio unlocking code
//
$serial = "123456";
$extra = "";
//
// select a radio model
//
$radioModel = RadioModels::get(RadioModels::FORD_M_SERIES);
//
// display radio model information, you can use it to set limits in your controls e.g.
//
// textFieldRadioSerial.maxLength = radioModel->serial_max_len
// textFieldRadioSerial.regEx = radioModel->serial_regex_pattern()
//
// (if allowed by your controls)
//
echo "Radio model $radioModel->name expects a serial number of $radioModel->serial_max_len length and {$radioModel->serial_regex_pattern()} regex pattern<br>";
// additional information
if ($radioModel->extra_max_len > 0)
{
echo "Additionally an extra field is required with $radioModel->extra_max_len and {$radioModel->extra_regex_pattern()} regex pattern<br>";
}
//
// validate the serial number (offline) before sending the Web API request
//
$error = $radioModel->validate($serial, $extra);
if ($error !== RadioErrors::SUCCESS)
{
if ($error === RadioErrors::INVALID_SERIAL_LENGTH)
echo "Invalid serial number length (expected $radioModel->serial_max_len characters<br>";
else if ($error == RadioErrors::INVALID_SERIAL_PATTERN)
echo "Invalid serial number regular expression pattern (expected $radioModel->serial_regex_pattern() regex pattern)<br>";
else if ($error == RadioErrors::INVALID_SERIAL_NOT_SUPPORTED)
echo "This serial number is not supported";
else if ($error == RadioErrors::INVALID_EXTRA_LENGTH)
echo "Invalid extra data length (expected $radioModel->extra_max_len characters)<br>";
else if ($error == RadioErrors::INVALID_EXTRA_PATTERN)
echo "Invalid extra data regular expression pattern (expected $radioModel->extra_regex_pattern() regex pattern)<br>";
exit(1);
}
//
// generate radio code (using Web API)
//
list($error, $result) = $myRadioCodeCalculator->calc($radioModel, $serial);
switch($error)
{
case RadioErrors::SUCCESS: echo "Radio code is " . $result["code"]; break;
case RadioErrors::INVALID_RADIO_MODEL: echo "Invalid radio model (not supported)"; break;
case RadioErrors::INVALID_SERIAL_LENGTH: echo "Invalid serial number length (expected " . $result["serialMaxLen"] . " characters)"; break;
case RadioErrors::INVALID_SERIAL_PATTERN: echo "Invalid serial number regular expression pattern (expected " . $result["serialRegexPattern"]["php"] . " regex pattern)"; break;
case RadioErrors::INVALID_SERIAL_NOT_SUPPORTED: echo "This serial number is not supported"; break;
case RadioErrors::INVALID_EXTRA_LENGTH: echo "Invalid extra data length (expected " . $result["extraMaxLen"] . " characters)"; break;
case RadioErrors::INVALID_EXTRA_PATTERN: echo "Invalid extra data regular expression pattern (expected " . $result["extraRegexPattern"]["php"] . " regex pattern"; break;
case RadioErrors::INVALID_INPUT: echo "Invalid input data"; break;
case RadioErrors::INVALID_COMMAND: echo "Invalid command sent to the Web API interface"; break;
case RadioErrors::INVALID_LICENSE: echo "Invalid license key!"; break;
default: echo "Something unexpected happen while trying to login to the service (error code {error})."; break;
}
#!/usr/bin/env python
###############################################################################
#
# Radio Code Calculator API - WebApi interface usage example
#
# In this example, we will demonstrate how to generate a code for a specific
# type of car radio. This examples shows how to use an extended offline
# validation.
#
# Version : v1.1.0
# Language : Python
# Author : Bartosz Wójcik
# Project : https://www.pelock.com/products/radio-code-calculator
# Homepage : https://www.pelock.com
#
###############################################################################
#
# include Radio Code Calculator API module
#
from radio_code_calculator import *
#
# create Radio Code Calculator API class instance (we are using our activation key)
#
myRadioCodeCalculator = RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD")
#
# generate a single radio unlocking code
#
serial: str = "123456"
extra: str = ""
#
# select a radio model
#
radioModel: RadioModel = RadioModels.FORD_M_SERIES
#
# display radio model information, you can use it to set limits in your controls e.g.
#
# textFieldRadioSerial.maxLength = radioModel.serial_max_len
# textFieldRadioSerial.regEx = radioModel.serial_regex_pattern
#
# (if allowed by your controls)
#
print(f'Radio model {radioModel.name} expects a serial number of {radioModel.serial_max_len}'
f' length and {radioModel.serial_regex_pattern} regex pattern')
# additional information
if radioModel.extra_max_len > 0:
print(f'Additionally an extra field is required with {radioModel.extra_max_len} and'
f' and {radioModel.extra_regex_pattern} regex pattern')
#
# validate the serial number (offline) before sending the Web API request
#
error = radioModel.validate(serial, extra)
if error != RadioErrors.SUCCESS:
if error == RadioErrors.INVALID_SERIAL_LENGTH:
print(f'Invalid serial number length (expected {radioModel.serial_max_len} characters)')
elif error == RadioErrors.INVALID_SERIAL_PATTERN:
print(f'Invalid serial number regular expression pattern (expected {radioModel.serial_regex_pattern} regex pattern)')
elif error == RadioErrors.INVALID_SERIAL_NOT_SUPPORTED:
print("This serial number is not supported")
elif error == RadioErrors.INVALID_EXTRA_LENGTH:
print(f'Invalid extra data length (expected {radioModel.extra_max_len} characters)')
elif error == RadioErrors.INVALID_EXTRA_PATTERN:
print(f'Invalid extra data regular expression pattern (expected {radioModel.extra_regex_pattern} regex pattern)')
exit(1)
#
# generate radio code (using Web API)
#
error, result = myRadioCodeCalculator.calc(radioModel, "123456")
if error == RadioErrors.SUCCESS:
print(f'Radio code is {result["code"]}')
elif error == RadioErrors.INVALID_RADIO_MODEL:
print("Invalid radio model (not supported)")
elif error == RadioErrors.INVALID_SERIAL_LENGTH:
print(f'Invalid serial number length (expected {result["serialMaxLen"]} characters)')
elif error == RadioErrors.INVALID_SERIAL_PATTERN:
print(f'Invalid serial number regular expression pattern (expected {result["serialRegexPattern"]["python"]} regex pattern)')
elif error == RadioErrors.INVALID_SERIAL_NOT_SUPPORTED:
print("This serial number is not supported")
elif error == RadioErrors.INVALID_EXTRA_LENGTH:
print(f'Invalid extra data length (expected {result["extraMaxLen"]} characters)')
elif error == RadioErrors.INVALID_EXTRA_PATTERN:
print(f'Invalid extra data regular expression pattern (expected {result["extraRegexPattern"]["python"]} regex pattern)')
elif error == RadioErrors.INVALID_INPUT:
print("Invalid input data")
elif error == RadioErrors.INVALID_COMMAND:
print("Invalid command sent to the Web API interface")
elif error == RadioErrors.INVALID_LICENSE:
print("Invalid license key")
elif error == RadioErrors.ERROR_CONNECTION:
print("Something unexpected happen while trying to login to the service.")
else:
print(f'Unknown error {error}')
"use strict";
/******************************************************************************
*
* Radio Code Calculator API - WebApi interface usage example
*
* In this example, we will demonstrate how to generate a code for a specific
* type of car radio. This example shows how to use an extended offline
* validation.
*
* Version : v1.1.5
* JS : ES6
* Dependencies : radio-code-calculator
* Author : Bartosz Wójcik (support@pelock.com)
* Project : https://www.pelock.com/products/radio-code-calculator
* Homepage : https://www.pelock.com
*
* @link https://www.pelock.com/products/radio-code-calculator
* @copyright Copyright (c) 2021-2024 PELock LLC
* @license Apache-2.0
*
/*****************************************************************************/
//
// include Radio Code Calculator API module
//
import { RadioCodeCalculator, RadioErrors, RadioModel, RadioModels } from "radio-code-calculator";
//
// create Radio Code Calculator API class instance (we are using our activation key)
//
let myRadioCodeCalculator = new RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD");
//
// generate a single radio unlocking code
//
let serial = "123456";
let extra = "";
//
// select a radio model
//
let radioModel = RadioModels.FORD_M_SERIES;
//
// display radio model information, you can use it to set limits in your controls e.g.
//
// textFieldRadioSerial.maxLength = radioModel.serial_max_len
// textFieldRadioSerial.regEx = radioModel.serial_regex_pattern()
//
// (if allowed by your controls)
//
console.log(`Radio model ${radioModel.name} expects a serial number of ${radioModel.serial_max_len} length and ${radioModel.serial_regex_pattern()} regex pattern<br>`);
// additional information
if (radioModel.extra_max_len > 0)
{
console.log(`Additionally an extra field is required with ${radioModel.extra_max_len} and ${radioModel.extra_regex_pattern()} regex pattern<br>`);
}
//
// validate the serial number (offline) before sending the Web API request
//
let error = radioModel.validate(serial, extra);
if (error !== RadioErrors.SUCCESS)
{
if (error === RadioErrors.INVALID_SERIAL_LENGTH)
console.log(`Invalid serial number length (expected ${radioModel.serial_max_len} characters<br>`);
else if (error == RadioErrors.INVALID_SERIAL_PATTERN)
console.log(`Invalid serial number regular expression pattern (expected ${radioModel.serial_regex_pattern()} regex pattern)<br>`);
else if (error == RadioErrors.INVALID_SERIAL_NOT_SUPPORTED)
console.log("This serial number is not supported");
else if (error == RadioErrors.INVALID_EXTRA_LENGTH)
console.log(`Invalid extra data length (expected ${radioModel.extra_max_len} characters)<br>`);
else if (error == RadioErrors.INVALID_EXTRA_PATTERN)
console.log(`Invalid extra data regular expression pattern (expected ${radioModel.extra_regex_pattern()} regex pattern)<br>`);
process.exit(1);
}
//
// generate radio code (using Web API)
//
myRadioCodeCalculator.calc(radioModel, serial).then((result) => {
console.log("Radio code is " + result["code"]);
}).catch((error) => {
switch(error["error"])
{
case RadioErrors.INVALID_RADIO_MODEL: console.log("Invalid radio model (not supported)"); break;
case RadioErrors.INVALID_SERIAL_LENGTH: console.log("Invalid serial number length (expected " + result["serialMaxLen"] + " characters)"); break;
case RadioErrors.INVALID_SERIAL_PATTERN: console.log("Invalid serial number regular expression pattern (expected " + result["serialRegexPattern"]["php"] + " regex pattern)"); break;
case RadioErrors.INVALID_SERIAL_NOT_SUPPORTED: console.log("This serial number is not supported"); break;
case RadioErrors.INVALID_EXTRA_LENGTH: console.log("Invalid extra data length (expected " + result["extraMaxLen"] + " characters)"); break;
case RadioErrors.INVALID_EXTRA_PATTERN: console.log("Invalid extra data regular expression pattern (expected " + result["extraRegexPattern"]["php"] + " regex pattern"); break;
case RadioErrors.INVALID_INPUT: console.log("Invalid input data"); break;
case RadioErrors.INVALID_COMMAND: console.log("Invalid command sent to the Web API interface"); break;
case RadioErrors.INVALID_LICENSE: console.log("Invalid license key!"); break;
default: console.log(`Something unexpected happen while trying to login to the service (error code ${error}).`); break;
}
});
If you would like to download information about all supported radio models and their parameters such as serial number length and pattern - you can do so.
<?php declare(strict_types=1);
/******************************************************************************
*
* Radio Code Calculator API - WebApi interface usage example
*
* In this example we will list all the available calculators and, their
* parameters like name, maximum length of the radio serial number and its
* regex pattern.
*
* Version : v1.1.5
* PHP : >= 8
* Dependencies : cURL
* Author : Bartosz Wójcik (support@pelock.com)
* Project : https://www.pelock.com/products/radio-code-calculator
* Homepage : https://www.pelock.com
*
* @link https://www.pelock.com/products/radio-code-calculator
* @copyright Copyright (c) 2021-2024 PELock LLC
* @license Apache-2.0
*
/*****************************************************************************/
//
// include Radio Code Calculator API module
//
use PELock\RadioCodeCalculator\RadioCodeCalculator;
use PELock\RadioCodeCalculator\RadioErrors;
//
// create Radio Code Calculator API class instance (we are using our activation key)
//
$myRadioCodeCalculator = new RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD");
//
// get the list of the supported radio calculators and their parameters (max. length, regex pattern)
//
list($error, $radio_models) = $myRadioCodeCalculator->list();
if ($error == RadioErrors::SUCCESS)
{
echo "Supported radio models " . count($radio_models) . "<br>";
foreach ($radio_models as $radio_model)
{
echo "Radio model name - $radio_model->name<br>";
echo "Max. length of the radio serial number - " . $radio_model->serial_max_len . "<br>";
echo "Regex pattern for the radio serial number - " . $radio_model->serial_regex_pattern() . "<br>";
// is extra field specified?
if ($radio_model->extra_max_len > 0)
{
echo "Max. length of the radio extra data - " . $radio_model->extra_max_len . "<br>";
echo "Regex pattern for the radio extra data - " . $radio_model->extra_regex_pattern() . "<br>";
echo "<br>";
}
}
}
else if ($error == RadioErrors::INVALID_LICENSE)
echo "Invalid license key!";
else
echo "Something unexpected happen while trying to login to the service (error code {error}).";
#!/usr/bin/env python
###############################################################################
#
# Radio Code Calculator API - WebApi interface usage example
#
# In this example we will list all the available calculators, and their
# parameters like name, maximum length of the radio serial number and its
# regex pattern.
#
# Version : v1.1.0
# Language : Python
# Author : Bartosz Wójcik
# Project : https://www.pelock.com/products/radio-code-calculator
# Homepage : https://www.pelock.com
#
###############################################################################
#
# include Radio Code Calculator API module
#
from radio_code_calculator import *
#
# create Radio Code Calculator API class instance (we are using our activation key)
#
myRadioCodeCalculator = RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD")
#
# get the list of the supported radio calculators and their parameters (max. length, regex pattern)
#
error, radio_models = myRadioCodeCalculator.list()
if error == RadioErrors.SUCCESS:
print(f'Supported radio models {len(radio_models)}:\n')
for radio_model in radio_models:
print(f'Radio model name - {radio_model.name}')
print(f'Max. length of the radio serial number - {radio_model.serial_max_len}')
print(f'Regex pattern for the radio serial number - {radio_model.serial_regex_pattern}')
# is extra field specified?
if radio_model.extra_max_len > 0:
print(f'Max. length of the radio extra data - {radio_model.extra_max_len}')
print(f'Regex pattern for the radio extra data - {radio_model.extra_regex_pattern}')
print()
elif error == RadioErrors.INVALID_LICENSE:
print("Invalid license key!")
else:
print(f'Something unexpected happen while trying to login to the service (error code {error}).')
"use strict";
/******************************************************************************
*
* Radio Code Calculator API - WebApi interface usage example
*
* In this example we will list all the available calculators and, their
* parameters like name, maximum length of the radio serial number and its
* regex pattern.
*
* Version : v1.1.5
* JS : ES6
* Dependencies : radio-code-calculator
* Author : Bartosz Wójcik (support@pelock.com)
* Project : https://www.pelock.com/products/radio-code-calculator
* Homepage : https://www.pelock.com
*
* @link https://www.pelock.com/products/radio-code-calculator
* @copyright Copyright (c) 2021-2024 PELock LLC
* @license Apache-2.0
*
/*****************************************************************************/
//
// include Radio Code Calculator API module
//
import { RadioCodeCalculator, RadioErrors, RadioModel, RadioModels } from "radio-code-calculator";
//
// create Radio Code Calculator API class instance (we are using our activation key)
//
let myRadioCodeCalculator = new RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD");
//
// get the list of the supported radio calculators and their parameters (max. length, regex pattern)
//
myRadioCodeCalculator.list().then((result) => {
let radio_models = result["radioModels"];
console.log("Supported radio models " + radio_models.length + "<br>");
radio_models.forEach(radio_model => {
console.log("Radio model name - " + radio_model.name + "<br>");
console.log("Max. length of the radio serial number - " + radio_model.serial_max_len + "<br>");
console.log("Regex pattern for the radio serial number - " + radio_model.serial_regex_pattern() + "<br>");
// is extra field specified?
if (radio_model.extra_max_len > 0)
{
console.log("Max. length of the radio extra data - " + radio_model.extra_max_len + "<br>");
console.log("Regex pattern for the radio extra data - " + radio_model.extra_regex_pattern() + "<br>");
console.log("<br>");
}
});
}).catch((error) => {
if (error["error"] == RadioErrors.INVALID_LICENSE)
console.log("Invalid license key!");
else
console.log(`Something unexpected happen while trying to login to the service (error code ${error}).`);
});
You can download the parameters of the selected calculator.
<?php declare(strict_types=1);
/******************************************************************************
*
* Radio Code Calculator API - WebApi interface usage example
*
* In this example, we will demonstrate how to get information about the
* specific radio calculator and its parameters (max. length & regex pattern).
*
* Version : v1.1.5
* PHP : >= 8
* Dependencies : cURL
* Author : Bartosz Wójcik (support@pelock.com)
* Project : https://www.pelock.com/products/radio-code-calculator
* Homepage : https://www.pelock.com
*
* @link https://www.pelock.com/products/radio-code-calculator
* @copyright Copyright (c) 2021-2024 PELock LLC
* @license Apache-2.0
*
/*****************************************************************************/
//
// include Radio Code Calculator API module
//
use PELock\RadioCodeCalculator\RadioCodeCalculator;
use PELock\RadioCodeCalculator\RadioErrors;
//
// create Radio Code Calculator API class instance (we are using our activation key)
//
$myRadioCodeCalculator = new RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD");
//
// query information about the radio model
//
list($error, $radio_model) = $myRadioCodeCalculator->info("ford-m-series");
if ($error === RadioErrors::SUCCESS)
{
echo "Radio model name - " . $radio_model->name . "<br>";
echo "Max. length of the radio serial number - " . $radio_model->serial_max_len . "<br>";
echo "Regex pattern for the radio serial number - " . $radio_model->serial_regex_pattern() . "<br>";
// is extra field specified?
if ($radio_model->extra_max_len > 0)
{
echo "Max. length of the radio extra data - " . $radio_model->extra_max_len . "<br>";
echo "Regex pattern for the radio extra data - " . $radio_model->extra_regex_pattern() . "<br>";
echo "<br>";
}
}
elseif ($error == RadioErrors::INVALID_LICENSE)
echo "Invalid license key!";
else
echo "Something unexpected happen while trying to login to the service (error code {error}).";
#!/usr/bin/env python
###############################################################################
#
# Radio Code Calculator API - WebApi interface usage example
#
# In this example, we will demonstrate how to get information about the
# specific radio calculator and its parameters (max. length & regex pattern).
#
# Version : v1.1.0
# Language : Python
# Author : Bartosz Wójcik
# Project : https://www.pelock.com/products/radio-code-calculator
# Homepage : https://www.pelock.com
#
###############################################################################
#
# include Radio Code Calculator API module
#
from radio_code_calculator import *
#
# create Radio Code Calculator API class instance (we are using our activation key)
#
myRadioCodeCalculator = RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD")
#
# query information about the radio model
#
error, radioModel = myRadioCodeCalculator.info("ford-m-series")
if error == RadioErrors.SUCCESS:
print(f'Radio model name - {radioModel.name}')
print(f'Max. length of the radio serial number - {radioModel.serial_max_len}')
print(f'Regex pattern for the radio serial number - {radioModel.serial_regex_pattern}')
# is extra field specified?
if radioModel.extra_max_len > 0:
print(f'Max. length of the radio extra data - {radioModel.extra_max_len}')
print(f'Regex pattern for the radio extra data - {radioModel.extra_regex_pattern}')
print()
elif error == RadioErrors.INVALID_LICENSE:
print("Invalid license key!")
else:
print(f'Something unexpected happen while trying to login to the service (error code {error}).')
"use strict";
/******************************************************************************
*
* Radio Code Calculator API - WebApi interface usage example
*
* In this example, we will demonstrate how to get information about the
* specific radio calculator and its parameters (max. length & regex pattern).
*
* Version : v1.1.5
* JS : ES6
* Dependencies : radio-code-calculator
* Author : Bartosz Wójcik (support@pelock.com)
* Project : https://www.pelock.com/products/radio-code-calculator
* Homepage : https://www.pelock.com
*
* @link https://www.pelock.com/products/radio-code-calculator
* @copyright Copyright (c) 2021-2024 PELock LLC
* @license Apache-2.0
*
/*****************************************************************************/
//
// include Radio Code Calculator API module
//
import { RadioCodeCalculator, RadioErrors, RadioModel, RadioModels } from "radio-code-calculator";
//
// create Radio Code Calculator API class instance (we are using our activation key)
//
let myRadioCodeCalculator = new RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD");
//
// query information about the radio model
//
myRadioCodeCalculator.info("ford-m-series").then((result) => {
let radio_model = result["radioModel"];
console.log("Radio model name - " + radio_model.name + "<br>");
console.log("Max. length of the radio serial number - " + radio_model.serial_max_len + "<br>");
console.log("Regex pattern for the radio serial number - " + radio_model.serial_regex_pattern() + "<br>");
// is extra field specified?
if (radio_model.extra_max_len > 0)
{
console.log("Max. length of the radio extra data - " + radio_model.extra_max_len + "<br>");
console.log("Regex pattern for the radio extra data - " + radio_model.extra_regex_pattern() + "<br>");
console.log("<br>");
}
}).catch((error) => {
if (error.error == RadioErrors.INVALID_LICENSE)
console.log("Invalid license key!");
else
console.log(`Something unexpected happen while trying to login to the service (error code ${error["error"]}).`);
});
By checking the activation key status, we will get information about the license owner, license type and license expiration date.
<?php declare(strict_types=1);
/******************************************************************************
*
* Radio Code Calculator API - WebApi interface usage example
*
* In this example we will verify our activation key status.
*
* Version : v1.1.5
* PHP : >= 8
* Dependencies : cURL
* Author : Bartosz Wójcik (support@pelock.com)
* Project : https://www.pelock.com/products/radio-code-calculator
* Homepage : https://www.pelock.com
*
* @link https://www.pelock.com/products/radio-code-calculator
* @copyright Copyright (c) 2021-2024 PELock LLC
* @license Apache-2.0
*
/*****************************************************************************/
//
// include Radio Code Calculator API module
//
use PELock\RadioCodeCalculator\RadioCodeCalculator;
use PELock\RadioCodeCalculator\RadioErrors;
//
// create Radio Code Calculator API class instance (we are using our activation key)
//
$myRadioCodeCalculator = new RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD");
//
// login to the service
//
list($error, $result) = $myRadioCodeCalculator->login();
//
// result[] array holds the information about the license
//
// result["license"]["activationStatus"] - True if license is active, False on invalid/expired keys
// result["license"]["userName"] - user name/company name of the license owner
// result["license"]["type"] - license type (0 - Personal License, 1 - Company License)
// result["license"]["expirationDate"] - license expiration date (in YYYY-MM-DD format)
//
if ($error == RadioErrors::SUCCESS)
{
echo "License activation status - " . ($result["license"]["activationStatus"] ? "True" : "False") . "<br>";
echo "License owner - " . $result["license"]["userName"];
echo "License type - " . ($result["license"]["type"] == 0 ? "Personal" : "Company") . "<br>";
echo "Expiration date - " . $result["license"]["expirationDate"] . "<br>";
}
else if ($error == RadioErrors::INVALID_LICENSE)
echo "Invalid license key!";
else
echo "Something unexpected happen while trying to login to the service (error code {error}).";
#!/usr/bin/env python
###############################################################################
#
# Radio Code Calculator API - WebApi interface usage example
#
# In this example we will verify our activation key status.
#
# Version : v1.1.0
# Language : Python
# Author : Bartosz Wójcik
# Project : https://www.pelock.com/products/radio-code-calculator
# Homepage : https://www.pelock.com
#
###############################################################################
#
# include Radio Code Calculator API module
#
from radio_code_calculator import *
#
# create Radio Code Calculator API class instance (we are using our activation key)
#
myRadioCodeCalculator = RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD")
#
# login to the service
#
error, result = myRadioCodeCalculator.login()
#
# result[] array holds the information about the license
#
# result["license"]["activationStatus"] - True if license is active, False on invalid/expired keys
# result["license"]["userName"] - user name/company name of the license owner
# result["license"]["type"] - license type (0 - Personal License, 1 - Company License)
# result["license"]["expirationDate"] - license expiration date (in YYYY-MM-DD format)
#
if error == RadioErrors.SUCCESS:
print(f'License activation status - {"True" if result["license"]["activationStatus"] else "False"}')
print(f'License owner - {result["license"]["userName"]}')
print(f'License type - {"Personal" if result["license"]["type"] == 0 else "Company"}')
print(f'Expiration date - {result["license"]["expirationDate"]}')
elif error == RadioErrors.INVALID_LICENSE:
print("Invalid license key!")
else:
print(f'Something unexpected happen while trying to login to the service (error code {error}).')
"use strict";
/******************************************************************************
*
* Radio Code Calculator API - WebApi interface usage example
*
* In this example we will verify our activation key status.
*
* Version : v1.1.5
* JS : ES6
* Dependencies : radio-code-calculator
* Author : Bartosz Wójcik (support@pelock.com)
* Project : https://www.pelock.com/products/radio-code-calculator
* Homepage : https://www.pelock.com
*
* @link https://www.pelock.com/products/radio-code-calculator
* @copyright Copyright (c) 2021-2024 PELock LLC
* @license Apache-2.0
*
/*****************************************************************************/
//
// include Radio Code Calculator API module
//
import { RadioCodeCalculator, RadioErrors, RadioModel, RadioModels } from "radio-code-calculator";
//
// create Radio Code Calculator API class instance (we are using our activation key)
//
let myRadioCodeCalculator = new RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD");
//
// login to the service
//
myRadioCodeCalculator.login().then((result) => {
//
// result[] array holds the information about the license
//
// result["license"]["activationStatus"] - True if license is active, False on invalid/expired keys
// result["license"]["userName"] - user name/company name of the license owner
// result["license"]["type"] - license type (0 - Personal License, 1 - Company License)
// result["license"]["expirationDate"] - license expiration date (in YYYY-MM-DD format)
//
console.log("License activation status - " + (result["license"]["activationStatus"] ? "True" : "False") + "<br>");
console.log("License owner - " + result["license"]["userName"]);
console.log("License type - " + (result["license"]["type"] == 0 ? "Personal" : "Company") + "<br>");
console.log("Expiration date - " + result["license"]["expirationDate"] + "<br>");
}).catch((error) => {
if (error["error"] == RadioErrors.INVALID_LICENSE)
console.log("Invalid license key!");
else
console.log(`Something unexpected happen while trying to login to the service (error code ${error}).`);
});
If you are interested in the Radio Code Calculator Web API or have any questions regarding radio code generator SDK packages, technical or legal issues, or if something is not clear, please contact me. I'll be happy to answer all of your questions.