پرش به مطلب اصلی

آپدیت فریمورک سخت افزار

یکی از چالش های اساسی برای رفع باگ های نرم افزاری، چگونی آپدیت فریمورد از راه دور می باشد. اِیراِنجین این قابلیت را برای شما فراهم کرده است که با آپدیت فریم ورک های خود در پنل تولید کنندگان، آنها را در دسترس عموم قرار دهید.

پنل کاربری

از طریق پنل کاربری > ابزارهای ابری > انتخاب ابزار مورد نظر > آپدیت، می توانید فریمورک های خود را در این محل برای ابزار مورد نظر آپلود نمایید.

آپدیت فریمورک

نحوه دریافت آپدیت در سخت افزار

شما از طریق mqtt آدرس آپدیت و certificate مناسب جهت دانلود از سرور همچنین ساعت برای تنظیم ساعت میکرو کنترلر خود دریافت می نمایید.

نکته : دقت نمایید برای دریافت داده از آدرس های ssl نیاز است همیشه ساعت کلاینت درخواست دهنده درست باشد در غیر اینصورت شما امکان دسترسی به آدرس های ssl نخواهید داشت به همین دلیل ما ساعت را برای شما ارسال می نماییم.


Topic : projectCode/ServerToDevice

داده هایی که برای شما ارسال می شود بصورت json زیر است.


{"deviceSerial":"AIRN0000000000","operationName":"firmware_update","value":"{\"link\":\"لینک فایل شما\",\"cert\":\"-----BEGIN CERTIFICATE-----\\n MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM\\n MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D\\n ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU\\n cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3\\n WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg\\n Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw\\n IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B\\n AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH\\n UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM\\n TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU\\n BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM\\n kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x\\n AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV\\n HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV\\n HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y\\n sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL\\n I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8\\n J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY\\n VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI\\n 03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=\\n -----END CERTIFICATE-----\",\"utc\":\"01/13/2025 11:28:12\"}"}

deviceSerial : ابزاری که باید فایل آپدیت را اجرا نماید operationName : اگر برابر با firmware_update بود متوجه می شوید مقدار value را باید برای آپدیت deserilize نمایید. value : اطلاعات اصلی جهت آپدیت شما می باشد.

مقادیر Value :

link : لینک فایل آپلود شما می باشد که در پنل تولید کنندگان آپلود شده است. cert : ssl certificate می باشد که جهت دانلود نیاز به آن دارید. utc : زمان حال می باشد برای تنظیم زمان میکرو کنترلر خود.

کد نمونه از کتاب خانه آردینو اِیراِنجین

void AirNginClient::IOT__FirmwareUpdate(String DownloadLink, String Certificate, String UTC){
if(_Update_Trying) return;
_Update_Trying = true;
try{
DEBUG_SERIAL_PRINTLN("IOT__FirmwareUpdate : Start");
if (WiFi.isConnected()==true)
{
DEBUG_SERIAL_PRINTLN("IOT__FirmwareUpdate : Wifi ok");
SetClock(UTC);
DEBUG_SERIAL_PRINTLN("IOT__FirmwareUpdate : clock ok");
_WiFiClientSecure.setCACert( (Certificate == "" ? instance->rootCACertificate : Certificate).c_str());
_WiFiClientSecure.setTimeout(20); // timeout argument is defined in seconds for setTimeout
t_httpUpdate_return ret = httpUpdate.update(
_WiFiClientSecure, DownloadLink, "",
[](HTTPClient *_WiFiClientSecure)
{
// client->setAuthorization("test", "password");
}
);
switch (ret)
{
case HTTP_UPDATE_FAILED:
DEBUG_SERIAL_PRINTLN("IOT__FirmwareUpdate : UPDATE_FAILED Error ("+String(httpUpdate.getLastError())+"): "+String(httpUpdate.getLastErrorString().c_str()));
break;

case HTTP_UPDATE_NO_UPDATES:
DEBUG_SERIAL_PRINTLN("IOT__FirmwareUpdate : NO_UPDATES");
break;

case HTTP_UPDATE_OK:
DEBUG_SERIAL_PRINTLN("IOT__FirmwareUpdate : UPDATE_OK");
break;
}
DEBUG_SERIAL_PRINTLN("IOT__FirmwareUpdate : IOT__FirmwareUpdate : End");
}
}
catch(...){
DEBUG_SERIAL_PRINTLN("IOT__FirmwareUpdate : Err");
}
_Update_Trying = false;
}

نحوه ارسال درخواست آپدیت فریمورک

این درخواست از طریق کاربر نهایی در نرم افزار موبایل امکان پذیر است. در قسمت تنظیمات می تواند ورژن های فعال را مشاهده نماید و یکی از آنها را انتخاب نماید و درخواست خود را ارسال کند.