Biblioteki SDK Dla Kalkulatora Kodów Do Radia

Biblioteki programistyczne SDK dla PHP, Python, JavaScript i C# kalkulatora kodów odblokowujących radioodtwarzacze w samochodach.

Opis

Aby skorzystać ze wszystkich funkcji Kalkulatora Kodów Do Radia API, użyj gotowych pakietów SDK dla swojego języka programowania.

Usługa Web API bazuje na prostym zapytaniu POST i odpowiedzi zakodowanej w postaci JSON.

Instalacja

W celu szybszego wdrożenia, paczki instalacyjne interfejsu Web API zostały wgrane na popularne repozytoria, a ich kody źródłowe zostały dodatkowo opublikowane na GitHubie:

Język Instalacja SDK Źródła
Język programowania PHP

Uruchom komendę:

php composer.phar require --prefer-dist pelock/radio-code-calculator "*"

lub dodaj do sekcji require w pliku konfiguracyjnym composer.json wpis:

"pelock/radio-code-calculator": "*"
Packagist GitHub
Język programowania Python pip install radio-code-calculator PyPI GitHub
Język programowania JavaScript

Uruchom komendę:

npm i radio-code-calculator

lub dodaj do sekcji dependencies w pliku konfiguracyjnym package.json wpis:

"dependencies": {
  "radio-code-calculator": "latest"
},

npm GitHub

Formaty danych wejściowych

Każdy kalkulator wymaga innego formatu danych wejściowych, takich jak numer seryjny radia, aby poprawnie wygenerować kod odblokowujący. W przypadku podania błędnego formatu danych nie będzie możliwe wygenerowanie kodu odblokowującego.

Formaty danych są weryfikowane w bibliotece programistycznej w trybie online oraz opcjonalnie w trybie offline. Poniżej prezentujemy wymagane formaty dla danych wejściowych:

Model Opis Długość RegEx (PCRE)
Renault i Dacia Kalkulator i Generator Kodu RadiaRenault i Dacia PreCode, gdzie pierwszy znak to zawsze litera A..Z, a po niej występują trzy cyfry 0..9. 4 /^([A-Z]{1}[0-9]{3})$/
Ford Kod Do Radia M Seria Kalkulator i Generator Kodu RadiaFord M Seria Pre code składa się z sześciu cyfr (zignoruj i NIE WPISUJ pierwszej literki M). 6 /^([0-9]{6})$/
Ford Kod Do Radia V Seria Kalkulator i Generator Kodu RadiaFord V Seria Pre code składa się z sześciu cyfr (zignoruj i NIE WPISUJ pierwszej literki V). 6 /^([0-9]{6})$/
Ford TravelPilot EX, FX i NX Kod Do Radia Generator i KalkulatorFord TravelPilot EX, FX i NX Ostatnie 7 cyfr numeru seryjnego. 7 /^([0-9]{7})$/
Toyota ERC Kalkulator i Generator Kodu Do Odblokowania RadiaToyota ERC Kod ERC składa się z 16 cyfr i liter. 16 /^([A-Z0-9]{16})$/i
Jeep Cherokee Kod Do Odblokowania Radia Kalkulator i GeneratorJeep Cherokee Numer seryjny składa się z 14 znaków i cyfr (pomiń spacje). Upewnij się, że kod dostawcy (ang. supplier code) zaczyna się od cyfr 17719. 14 /^([A-Z0-9]{10}[0-9]{4})$/i
Chrysler Panasonic TM9 Kalkulator i Generator Kodu Do RadiaChrysler Panasonic TM9 Ostatnie 4 cyfry numeru seryjnego. Upewnij się, że numer seryjny rozpoczyna się od znaków TM9 np. T M9 XXX X X1234. 4 /^([0-9]{4})$/
Kod do radia Chrysler Dodge Ram Uconnect Harman Kardon VP2Chrysler Dodge Uconnect VP2 Ostatnie 4 znaki numeru seryjnego. Upewnij się, że numer seryjny rozpoczyna się od znaków TVPQN i to radio model VP2. 4 /^([A-Z0-9]{4})$/
Fiat Stilo i Bravo Kod Do Radia Visteon Kalkulator i GeneratorFiat Stilo i Bravo (Visteon) Pre code składa się z sześciu cyfr (zignoruj i NIE WPISUJ pierwszej literki M). 6 /^([A-Z0-9]{6})$/i
Fiat DAIICHI Kod Do Radia MOPAR Kalkulator i GeneratorFiat DAIICHI MOPAR Ostatnie 4 cyfry numeru seryjnego (zignoruj i NIE WPISUJ pierwszej literki). 4 /^([0-9]{4})$/i
Continental Fiat 250 i 500 VP1/VP2 Kod Do Radia Kalkulator i GeneratorFiat 250 i 500 VP1/VP2 Kod zaczyna się od znaków A2C i 16 cyfr. Wpisz jedynie ostatnie 4 cyfry numeru seryjnego. 4 /^([0-9]{4})$/i
Nissan Kalkulator Kodu PIN z Numeru SchowkaNissan PIN Immobilizera Kod schowka składa się z 12 cyfr i liter. 12 /^([A-Z0-9]{12})$/i
Eclipse ESN Kalkulator Kodu OdblokowującegoEclipse ESN Kod ESN składa się z 6 cyfr i liter. 6 /^([A-Z0-9]{6})$/i
Jaguar Alpine Kalkulator Kodu Odblokowującego Radio SamochodoweJaguar Alpine Ostatnie 5 cyfr numeru seryjnego. 5 /^([0-9]{5})$/

Przykłady użycia

Generowanie kodu radiowego

W tym przykładzie zaprezentowane jest generowanie kodu dla wybranego modelu radiowego. Cała walidacja parametrów wejściowych odbywa się po stronie serwera i jeśli numer seryjny radia będzie posiadał nieprawidłową długość lub wzorzec - usługa zwróci błąd.

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

Generowanie kodu radiowego z dodatkową walidacją w trybie offline

Kody radiowe generowane są na podstawie wejściowych parametrów takich jak m.in. numer seryjny radia.

Numery seryjne radia różnią się dla różnych raddioodtwarzaczy, mają różną długość i różny wzór, jedne mogą się składać z samych cyfr np. 1234, a inne z cyfr i liter np. AB1234XYZ.

Walidacja tych danych odbywa się po stronie serwera. Jednak dla usprawnienia działania, możemy wykorzystać informacje o dostępnych limitach i wzorcach poszczególnych numerów seryjnych, aby np. ustawić te ograniczenia w kontrolkach we własnych aplikacjach bez zbędnego wywoływania zapytań do interfejsu Web API.

<?php declare(strict_types=1);

/******************************************************************************
 *
 * Radio Code