DEENESPTFRRUARHIKOZHNL

بنية ara::log::Format

[SWS_LOG_00207] Upstream: RS_LT_00046

struct Format final {...};

A type holding a formatting hint. The interpretation of precision depends on fmt: For integral types (i.e. Fmt::kDec, Fmt::kOct, Fmt::kHex, Fmt::kBin), precision is interpreted as the minimum number of digits to output, similar to e.g. std::printf("%.7d"). For the floating-point specifiers Fmt::kDecFloat, Fmt::kEngFloat and Fmt::kHexFloat, precision denotes the exact number of digits to be shown after the decimal point; for Fmt::kAutoFloat, precision denotes the number of significant digits to be shown according to the rules of the std::printf "%g" specifier. If fmt is Fmt::kDefault, the precision field is ignored, and an implementation-defined formatting is applied. For integral types, if precision is 0, it is interpreted the same as if it was 1. For convenience, there are helper functions to create specific instances of this struct. The helper functions should be used instead of creating instances manually.

Header-Datei#include "ara/log/logger.h"
Forwarding-Header#include "ara/log/log_fwd.h"
Scopenamespace ara::log

دليل المستخدممولَّد بالذكاء الاصطناعي

يُستخدم كتلميح تنسيق للتحكم في تنسيق العرض والدقة عند إخراج قيم السجل.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: ae5714d3cea4 المصدر أسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يُستخدم كتلميح تنسيق للتحكم في تنسيق العرض والدقة عند إخراج قيم السجل.

تُستخدم البنية ara::log::Format كتلميح تنسيق في نظام التسجيل وتجمع بين محدد التنسيق fmt ([SWS_LOG_00225]) ومواصفة الدقة precision ([SWS_LOG_00226]). يُفضل إنشاء المثيلات عبر دوال مساعدة مقدمة، حيث يميز تقييم precision حسب نوع التنسيق بين الحد الأدنى لعدد الخانات في الأعداد الصحيحة والمنازل العشرية في أرقام الفاصلة العائمة. وبالنسبة للأنواع الصحيحة، تُعامل الدقة التي تساوي صفراً مثل واحد، بينما يتم تجاهل الحقل تماماً تحت Fmt::kDefault.

السياق

تُستخدم بنية البيانات ara::log::Format في إطار عمل التسجيل الخاص بـ AUTOSAR Adaptive Platform كتلميح تنسيق لإخراج القيم المنسقة. وتجمع لهذا الغرض بين خاصيتين مركزيتين: مواصفة التنسيق fmt من نوع التعداد Fmt ([SWS_LOG_00225]) بالإضافة إلى الدقة التابعة precision كـ std::uint16_t ([SWS_LOG_00226]). شركاء التفاعل هم مكونات الإخراج وتدفقات التنسيق لوحدة التسجيل بالإضافة إلى منطق التطبيق الذي يولد رسائل السجل مع إخراج نصي منسق. تفسير: من المرجح أن تكون الدوال المساعدة لإنشاء المثيلات المذكورة في المواصفة متواجدة مباشرة في الوحدة ara::log لتوفير تنسيقات قياسية. سؤال Q-1c465e69c99359fa (مفتوح)

دورة الحياة

بصفتها بنية بيانات نهائية (struct Format final)، لا تمتلك ara::log::Format آلة حالة داخلية ولا انتقالات معقدة بين المراحل. وعلى الرغم من التصريح عن السمات كمتغيرات عامة ([SWS_LOG_00225]، [SWS_LOG_00226])، فإن المواصفة تطلب صراحةً عدم إنشاء مثيلات يدوياً، بل استخدام الدوال المساعدة المتوفرة بدلاً من ذلك. وتكون النسخ عادةً كائنات قيمة قصيرة العمر يتم تمريرها عن طريق النسخ أو المرجع إلى تدفقات السجل. تفسير: نظراً لأن البنية لا تظهر أي مزامنة داخلية، فمن المرجح أن تكون النسخ وعمليات القراءة المتزامنة عبر حدود سلاسل العمليات آمنة لسلاسل العمليات، في حين يجب مزامنة عمليات الوصول القابلة للتعديل خارجياً. سؤال Q-bd0f1147e9472c19 (مفتوح)

مسار الاستخدام

يتضمن الاستخدام النموذجي تحديد محدد التنسيق fmt ([SWS_LOG_00225]) وتحديد الدقة المطلوبة precision ([SWS_LOG_00226]). يعتمد تقييم precision على النوع المحدد في fmt:

  • أنواع الأعداد الصحيحة: بالنسبة لـ Fmt::kDec وFmt::kOct وFmt::kHex وFmt::kBin، يحدد precision الحد الأدنى لعدد الأرقام المطلوب إخراجها، بشكل مماثل للتنسيق عبر std::printf("%.7d").
  • أنواع الفاصلة العائمة ذات التمثيل الثابت والأسي: عند Fmt::kDecFloat وFmt::kEngFloat وFmt::kHexFloat، يحدد precision العدد الدقيق للمنازل العشرية.
  • تمثيل الفاصلة العائمة التلقائي: تحت Fmt::kAutoFloat، يحدد precision عدد الخانات المعنوية وفقاً لقواعد محدد التنسيق %g في std::printf.
  • التنسيق القياسي: إذا كان fmt يحمل القيمة Fmt::kDefault، فسيتم تجاهل التحديد في precision وتطبيق تنسيق يعتمد على التنفيذ.
FormatAuswertung start Format-Auswertung check_fmt Welcher Typ in fmt? start->check_fmt integral precision == 0? check_fmt->integral kDec, kOct, kHex, kBin float_fixed Exakte Nachkommastellen = precision check_fmt->float_fixed kDecFloat, kEngFloat, kHexFloat float_auto Signifikante Stellen = precision (analog %g) check_fmt->float_auto kAutoFloat default_fmt precision ignoriert (Standardformatierung) check_fmt->default_fmt kDefault integral_min Minimale Stellenanzahl = precision integral->integral_min لا integral_one Minimale Stellenanzahl = 1 integral->integral_one نعم end Formatierung angewendet integral_min->end integral_one->end float_fixed->end float_auto->end default_fmt->end

مخطط النشاط: منطق التفرع لتقييم precision اعتماداً على fmt. المصادر: [SWS_LOG_00225]، [SWS_LOG_00226]

سيناريوهات الأخطاء

لا تحدد البنية رموز أخطاء أو استثناءات؛ وبدلاً من ذلك، تتم معالجة الحالات الحدية بطريقة متسامحة مع الأخطاء وحتمية. في معرّفات التنسيق للأعداد الصحيحة (Fmt::kDec، Fmt::kOct، Fmt::kHex، Fmt::kBin)، يتم تقييم قيمة precision = 0 ([SWS_LOG_00226]) بشكل مطابق دلالياً لقيمة 1 لمنع المخرجات الفارغة. وإذا تم تعيين fmt إلى Fmt::kDefault ([SWS_LOG_00225])، فإن القيمة المعينة في precision لا تؤدي إلى حالة خطأ، بل يتم تجاهلها بصمت.

يستند هذا الدليل إلى متطلبات مواصفة وحدة التسجيل الخاصة بـ AUTOSAR Adaptive Platform R25-11.

مخطط الفئات UML

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__log__Format351 «struct» Format + fmt + precision

الثوابت

fmt متغير

the format specifier

Fmt fmt;
precision متغير

the precision to use

std::uint16_t precision;

توثيق الثوابت / المتغيرات

متغير fmt [SWS_LOG_00225] Upstream: RS_LT_00046

Fmt fmt;

the format specifier

Header-Datei#include "ara/log/logger.h"
Scopestruct ara::log::Format
Symbolfmt
TypFmt

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_LOG_00225
Status
valid/auto-approved
Version
AUTOSAR/AP/record/SWS_LOG_00225@rel:R25-11#5aa55b81
Content hash
5aa55b81
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_LogAndTrace.pdf#nameddest=SWS_LOG_00225
Status: valid/auto-approved Version: rel:R25-11#04613a79 Versionshistorie & Revisions (2 transitions, 6 revision)
Current State
valid/auto-approved
Reason
unchanged
Campaign
2026-08-sws-log-pilot-after-tool-improvement
Active Version
AUTOSAR/AP/record/SWS_LOG_00225@rel:R25-11#04613a79
Point-in-Time History:
Recorded Revisions (6):
  • R25-11rel:R25-11#637a0dc22026-09-30
  • R21-11rel:R21-11#b0525fe12026-10-14
  • R22-11rel:R22-11#81b856192026-10-14
  • R23-11rel:R23-11#04613a792026-10-14
  • R24-11rel:R24-11#04613a792026-10-14
  • R25-11rel:R25-11#04613a792026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-10toolvalid/unversioned → invalid/obsoletespec update after tool improvement2026-08-sws-log-pilot-after-tool-improvement
2026-08-10toolinvalid/obsolete → valid/auto-approvedunchanged2026-08-sws-log-pilot-after-tool-improvement

متغير precision [SWS_LOG_00226] Upstream: RS_LT_00046

std::uint16_t precision;

the precision to use

Header-Datei#include "ara/log/logger.h"
Scopestruct ara::log::Format
Symbolprecision
Typstd::uint16_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_LOG_00226
Status
valid/auto-approved
Version
AUTOSAR/AP/record/SWS_LOG_00226@rel:R25-11#9b7d62da
Content hash
9b7d62da
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_LogAndTrace.pdf#nameddest=SWS_LOG_00226
Status: valid/auto-approved Version: rel:R25-11#c555de85 Versionshistorie & Revisions (2 transitions, 6 revision)
Current State
valid/auto-approved
Reason
unchanged
Campaign
2026-08-sws-log-pilot-after-tool-improvement
Active Version
AUTOSAR/AP/record/SWS_LOG_00226@rel:R25-11#c555de85
Point-in-Time History:
Recorded Revisions (6):
  • R25-11rel:R25-11#ee3180342026-09-30
  • R21-11rel:R21-11#c847203d2026-10-14
  • R22-11rel:R22-11#406eff9e2026-10-14
  • R23-11rel:R23-11#c555de852026-10-14
  • R24-11rel:R24-11#c555de852026-10-14
  • R25-11rel:R25-11#c555de852026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-10toolvalid/unversioned → invalid/obsoletespec update after tool improvement2026-08-sws-log-pilot-after-tool-improvement
2026-08-10toolinvalid/obsolete → valid/auto-approvedunchanged2026-08-sws-log-pilot-after-tool-improvement