PageSourceSearch

https://autosar.io/docs/assets/js/0b852ac5.931f11ad.js

js autosar.io collected 2026-10-08 20:59:48 UTC 74,627 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkpopdoc=self.webpackChunkpopdoc||[]).push([["860"],{8635(e,n,t){t.r(n),t.d(n,{metadata:()=>i,default:()=>o,frontMatter:()=>d,contentTitle:()=>l,toc:()=>h,assets:()=>a});var i=JSON.parse('{"id":"paio/editors/datatype-editor","title":"DataType Editor","description":"Define application and implementation data types, physical units, and value constraints.","source":"@site/content/public/docs/paio/editors/datatype-editor.md","sourceDirName":"paio/editors","slug":"/paio/editors/datatype-editor","permalink":"/docs/paio/editors/datatype-editor","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":6,"frontMatter":{"title":"DataType Editor","description":"Define application and implementation data types, physical units, and value constraints.","sidebar_position":6,"sidebar_label":"DataType Editor"},"sidebar":"publicSidebar","previous":{"title":"Interface Editor","permalink":"/docs/paio/editors/interface-editor"},"next":{"title":"System Editor","permalink":"/docs/paio/editors/system-editor"}}'),s=t(4848),r=t(8453);let d={title:"DataType Editor",description:"Define application and implementation data types, physical units, and value constraints.",sidebar_position:6,sidebar_label:"DataType Editor"},l,a={},h=[{value:"What This Chapter Covers",id:"what-this-chapter-covers",level:2},{value:"10.1 Screen Layout",id:"101-screen-layout",level:2},{value:"DataType Tab Layout",id:"datatype-tab-layout",level:3},{value:"Unit Tab Layout",id:"unit-tab-layout",level:3},{value:"Compact Mode Embedded in the Interface Editor",id:"compact-mode-embedded-in-the-interface-editor",level:3},{value:"10.2 Data Type Categories (9 Kinds)",id:"102-data-type-categories-9-kinds",level:2},{value:"10.3 The MEMBERS / ENUMERATION Sub-Table",id:"103-the-members--enumeration-sub-table",level:2},{value:"10.4 Working with the List (DataType Tab)",id:"104-working-with-the-list-datatype-tab",level:2},{value:"The \u22EF Menu",id:"the--menu",level:3},{value:"10.5 Validation Panel",id:"105-validation-panel",level:2},{value:"Errors (error)",id:"errors-error",level:3},{value:"Structure and Enumeration Detail Errors",id:"structure-and-enumeration-detail-errors",level:3},{value:"Warnings (warning)",id:"warnings-warning",level:3},{value:"Field Errors That Appear as You Type",id:"field-errors-that-appear-as-you-type",level:3},{value:"Per-Row Errors in MEMBERS / ENUMERATION",id:"per-row-errors-in-members--enumeration",level:3},{value:"10.6 Preview Panel",id:"106-preview-panel",level:2},{value:"10.7 The 11 Built-In Primitives",id:"107-the-11-built-in-primitives",level:2},{value:"The Structure Created on Export",id:"the-structure-created-on-export",level:3},{value:"10.8 Unit Tab",id:"108-unit-tab",level:2},{value:"List",id:"list",level:3},{value:"Editable Properties",id:"editable-properties",level:3},{value:"Preview",id:"preview",level:3},{value:"The 33 Default Units",id:"the-33-default-units",level:3},{value:"10.9 Saving and Undo",id:"109-saving-and-undo",level:2},{value:"10.10 Integration with Other Screens",id:"1010-integration-with-other-screens",level:2},{value:"10.11 Editing Rules Summary",id:"1011-editing-rules-summary",level:2}];function c(e){let n={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"what-this-chapter-covers",children:"What This Chapter Covers"}),"\n",(0,s.jsxs)(n.p,{children:["This chapter describes the DataType editor, which defines\n",(0,s.jsx)(n.a,{href:"/docs/paio/reference/glossary#195-data-types",children:"application data types"}),",\n",(0,s.jsx)(n.a,{href:"/docs/paio/reference/glossary#195-data-types",children:"implementation data types"}),", and physical\n",(0,s.jsx)(n.a,{href:"/docs/paio/reference/glossary#195-data-types",children:"units"}),". It covers the screen layout, the editable\nproperties of all 9 ",(0,s.jsx)(n.a,{href:"/docs/paio/reference/glossary#195-data-types",children:"categories"}),", the rules for the 11\n",(0,s.jsx)(n.a,{href:"/docs/paio/reference/glossary#195-data-types",children:"built-in primitives"}
1),", and the real-time validation\nmessages. ARXML import and export are covered in\n",(0,s.jsx)(n.a,{href:"/docs/paio/workflow/import-export",children:"13. Import and Export"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"This chapter is for users who define the data types that interfaces or SWCs will use. A project\nmust be open before you start."}),"\n",(0,s.jsxs)(n.p,{children:["Double-click the ",(0,s.jsx)(n.code,{children:"design \u25B8 System \u25B8 DataType"})," node in the Explorer to open the editor in a tab.\nThe editor saves to a single DataType model, which holds both data types and units."]}),"\n",(0,s.jsx)(n.h2,{id:"101-screen-layout",children:"10.1 Screen Layout"}),"\n",(0,s.jsx)(n.p,{children:"Two tab buttons sit at the top of the editor, and the contents of the selected tab appear below\nthem."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Tab"}),(0,s.jsx)(n.th,{children:"Contents"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"DataType"})}),(0,s.jsx)(n.td,{children:"The data type list and its detail form"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Unit"})}),(0,s.jsx)(n.td,{children:"The physical unit list and its detail form"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"datatype-tab-layout",children:"DataType Tab Layout"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"DataType tab \u2014 four areas: the list, Configuration plus the MEMBERS table, Preview, and Validation",src:t(721).A+"",width:"1660",height:"961"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"DataType tab \u2014 four areas: the list, Configuration plus the MEMBERS table, Preview, and Validation"})}),"\n",(0,s.jsx)(n.p,{children:"Drag the borders between the three areas, and the horizontal border between Preview and\nValidation, to resize them."}),"\n",(0,s.jsx)(n.h3,{id:"unit-tab-layout",children:"Unit Tab Layout"}),"\n",(0,s.jsxs)(n.p,{children:["The unit list (",(0,s.jsx)(n.code,{children:"Unit"}),", with ",(0,s.jsx)(n.code,{children:"+"})," and ",(0,s.jsx)(n.code,{children:"-"})," buttons) sits on the left, and the Configuration form and\nPreview sit side by side on the right. The Unit tab has no search, filter, or Validation area."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Unit tab \u2014 the list and Configuration without search, filter, or Validation, and a Preview holding the conversion formula, graph, SI-to-unit conversion table, comparison bars, and value converter",src:t(3725).A+"",width:"1663",height:"964"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"Unit tab \u2014 the list and Configuration without search, filter, or Validation, and a Preview holding the conversion formula, graph, SI-to-unit conversion table, comparison bars, and value converter"})}),"\n",(0,s.jsx)(n.h3,{id:"compact-mode-embedded-in-the-interface-editor",children:"Compact Mode Embedded in the Interface Editor"}),"\n",(0,s.jsxs)(n.p,{children:["The right panel of the ",(0,s.jsx)(n.a,{href:"/docs/paio/editors/interface-editor",children:"09. Interface Editor"})," contains the same DataType\neditor. In this compact mode the tab buttons, the type list, the Unit tab, and the Validation\npanel are all hidden. Only the properties form (top 60%, header ",(0,s.jsx)(n.code,{children:"DATA TYPE"}),") and Preview\n(bottom 40%, header ",(0,s.jsx)(n.code,{children:"PREVIEW"}),") are stacked vertically, and you can drag the horizontal border\nbetween them. The layout lets you define a type on the spot while you build an interface, and\nyour edits are saved to the same DataType model. Compact mode has no shortcuts of its own; it\nleaves saving and undo to the Interface editor."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"The DataType editor in compact mode inside the right panel of the Interface editor \u2014 only the DATA TYPE and PREVIEW areas remain",src:t(9922).A+"",width:"1657",height:"964"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"The DataType editor in compact mode inside the right panel of the Interface editor \u2014 only the DATA TYPE and PREVIEW areas remain"})}),"\n",(0,s.jsx)(n.h2,{id:"102-data-type-categories-9-kinds",children:"10.2 Data Type Categories (9 Kinds)"}),"\n",(0,s.jsx)(n.p,{children:"Pick the Category from a group of buttons (a segmented control). They appear in this order:\nPRIMITIVE, AL
1IAS, ENUMERATION, FIXED_ARRAY, DYNAMIC_ARRAY, STRING, STRUCTURE, MAP, UNION."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"The 9 Category segments \u2014 only PRIMITIVE is dimmed and cannot be selected",src:t(8155).A+"",width:"664",height:"92"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"The 9 Category segments \u2014 only PRIMITIVE is dimmed and cannot be selected"})}),"\n",(0,s.jsxs)(n.p,{children:["Every category has the common ",(0,s.jsx)(n.code,{children:"NAME"}),", ",(0,s.jsx)(n.code,{children:"Category"}),", and ",(0,s.jsx)(n.code,{children:"Description"})," properties. ",(0,s.jsx)(n.code,{children:"Description"})," is a\nmulti-line field and always comes last in the form. The meaning and the category-specific\nproperties of the 9 categories are as follows."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Category"}),(0,s.jsx)(n.th,{children:"Meaning"}),(0,s.jsx)(n.th,{children:"Category-specific properties"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"PRIMITIVE"})}),(0,s.jsx)(n.td,{children:"Built-in basic type"}),(0,s.jsx)(n.td,{children:"Min / Max (every property is read-only)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"ALIAS"})}),(0,s.jsx)(n.td,{children:"An alias (typedef) for another type"}),(0,s.jsx)(n.td,{children:"BaseType, C++ Namespace, Factor, Offset, Min, Max, Unit"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"ENUMERATION"})}),(0,s.jsx)(n.td,{children:"Enumeration"}),(0,s.jsxs)(n.td,{children:["BaseType, C++ Namespace, plus the ",(0,s.jsx)(n.code,{children:"ENUMERATION"})," table"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"FIXED_ARRAY"})}),(0,s.jsx)(n.td,{children:"Fixed-length array"}),(0,s.jsx)(n.td,{children:"Element Type, Array Size, C++ Namespace"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"DYNAMIC_ARRAY"})}),(0,s.jsx)(n.td,{children:"Variable-length array"}),(0,s.jsx)(n.td,{children:"Element Type, Max Size, C++ Namespace"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"STRING"})}),(0,s.jsx)(n.td,{children:"String (AP only)"}),(0,s.jsx)(n.td,{children:"Max Size, C++ Namespace"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"STRUCTURE"})}),(0,s.jsx)(n.td,{children:"Structure"}),(0,s.jsxs)(n.td,{children:["C++ Namespace, plus the ",(0,s.jsx)(n.code,{children:"MEMBERS"})," table"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"MAP"})}),(0,s.jsx)(n.td,{children:"Associative array (AP only)"}),(0,s.jsx)(n.td,{children:"Key Type, Value Type, C++ Namespace"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"UNION"})}),(0,s.jsx)(n.td,{children:"Union"}),(0,s.jsxs)(n.td,{children:["C++ Namespace, plus the ",(0,s.jsx)(n.code,{children:"MEMBERS"})," table"]})]})]})]}),"\n",(0,s.jsx)(n.p,{children:"BaseType, Element Type, Key Type, Value Type, and Unit are all searchable selection boxes. The\ntype itself is never offered as a candidate, and the rest of the candidate range differs per\nproperty."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Property"}),(0,s.jsx)(n.th,{children:"Candidates"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"BaseType of ALIAS and ENUMERATION"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"The 11 built-in primitives only"})," (user-defined types cannot be selected)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Element Type of FIXED_ARRAY and DYNAMIC_ARRAY"}),(0,s.jsx)(n.td,{children:"All other types"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Type of a STRUCTURE or UNION member"}),(0,s.jsx)(n.td,{children:"All other types"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Key Type of MAP"}),(0,s.jsxs)(n.td,{children:["The 10 built-in primitives except ",(0,s.jsx)(n.code,{children:"boolean"}
1),", plus types in the STRING category"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Value Type of MAP"}),(0,s.jsx)(n.td,{children:"All other types"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Unit of ALIAS"}),(0,s.jsxs)(n.td,{children:["Every unit on the Unit tab. The label reads ",(0,s.jsx)(n.code,{children:"DisplayName [name]"})," when a DisplayName exists (for example ",(0,s.jsx)(n.code,{children:"km/h [KilometersPerHour]"}),"), and just the name otherwise"]})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"BaseType candidates for ALIAS \u2014 only the 11 built-in primitives appear",src:t(5145).A+"",width:"1663",height:"962"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"BaseType candidates for ALIAS \u2014 only the 11 built-in primitives appear"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"You cannot select PRIMITIVE."})," The PRIMITIVE button in the segmented control is dimmed and\nblocked from clicks, and the data layer also rejects a change to PRIMITIVE. If a type that is\nnot a built-in primitive became PRIMITIVE, every field would be locked read-only with no way\nback, and the value could not be saved to a file in the first place."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"103-the-members--enumeration-sub-table",children:"10.3 The MEMBERS / ENUMERATION Sub-Table"}),"\n",(0,s.jsxs)(n.p,{children:["Selecting STRUCTURE, UNION, or ENUMERATION attaches a sub-table below the Configuration form.\nThe title is ",(0,s.jsx)(n.code,{children:"ENUMERATION"})," for ENUMERATION and ",(0,s.jsx)(n.code,{children:"MEMBERS"})," for the others. The table layout per\ncategory is as follows."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Category"}),(0,s.jsx)(n.th,{children:"Columns"}),(0,s.jsx)(n.th,{children:"Add button tooltip"}),(0,s.jsx)(n.th,{children:"Defaults for a new row"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"STRUCTURE"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"#"}),", ",(0,s.jsx)(n.code,{children:"Type"}),", ",(0,s.jsx)(n.code,{children:"Name"}),", ",(0,s.jsx)(n.code,{children:"Optional"}),", delete"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Add Member"})}),(0,s.jsxs)(n.td,{children:["Name ",(0,s.jsx)(n.code,{children:"SubElement_0"}),", type ",(0,s.jsx)(n.code,{children:"uint8"}),", Optional ",(0,s.jsx)(n.code,{children:"False"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"UNION"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"#"}),", ",(0,s.jsx)(n.code,{children:"Type"}),", ",(0,s.jsx)(n.code,{children:"Name"}),", delete"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Add Member"})}),(0,s.jsxs)(n.td,{children:["Name ",(0,s.jsx)(n.code,{children:"Member_0"}),", type ",(0,s.jsx)(n.code,{children:"uint8"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ENUMERATION"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"#"}),", ",(0,s.jsx)(n.code,{children:"Name"}),", ",(0,s.jsx)(n.code,{children:"Value"}),", delete"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Add Enumeration"})}),(0,s.jsxs)(n.td,{children:["Name ",(0,s.jsx)(n.code,{children:"Literal_0"}),", value is the current maximum + 1 (0 if there is none)"]})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"The MEMBERS table of a STRUCTURE \u2014 the # drag handle, the Type / Name / Optional columns, and the \xd7 that removes a row",src:t(307).A+"",width:"664",height:"282"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"The MEMBERS table of a STRUCTURE \u2014 the # drag handle, the Type / Name / Optional columns, and the \xd7 that removes a row"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"#"})," cell is a drag handle and shows the row number counted from 0. Click this cell and drag\nthe row up or down to reorder it."]}),"\n",(0,s.jsxs)(n.li,{children:["The \xd7 button at the end of a row deletes that row (tooltip ",(0,s.jsx)(n.code,{children:"Remove Member"})," or\n",(0,s.jsx)(n.code,{children:"Remove Enumeration"}),")."]}),"\n",(0,s.jsxs)(n.li,{children:["You can drag the border of the two middle columns (",(0,s.jsx)(n.code,{children:"Type"})," / ",(0,s.jsx)(n.code,{children:"Name"})," for STRUCTURE and UNION,\n",(0,s.jsx)(n.code,{children:"Name"})," / ",(0,s.jsx)(n.code,{children:"Value"})," for ENUMERATION) to change their width. The ",(0,s.jsx)(n.code,{children:"#"}),", ",(0,s.jsx)(n.code,{children:"Optional"}),", and delete cells\nhave a fixed width."]}),"\n",(0,s.jsxs)(n.li,{children:["The name cell is checked strictly. A name that is empty, contains only whitespace, or breaks the\nAUTOSAR rules ",(0,s.jsx)(n.strong,{children:"is not saved"}),", and the previous name is kept. Leading and trailing whitespace\nis trimmed before the value is saved."]}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"Value"})," of an ENUMERATION accepts integers only. When BaseType points at a built-in\nprimitive, the value you type is ",(0,s.jsx)(n.strong,{children:"clamped automatically"})," to the representable range of that\nprimitive. For example, with BaseType ",(0,s.jsx)(n.code,{children:"uint8"}),", typing 300 changes the value to 255. When\nBaseType is empty or points at a type whose range is unknown, no clamping happens and ",(0,s.jsx)(n.strong,{children:"no range\ncheck happens either."})," When BaseType is empty, a ",(0,s.jsx)(n.code,{children:"BaseType is required"})," error appears in the\nValidation panel instead; when BaseType is set but its range is unknown, nothing is reported.\nWhen BaseType is empty or points at a type whose range is unknown, the value is not clamped, and\nthe Validation panel reports the range overflow as an error instead."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"104-working-with-the-list-datatype-tab",children:"10.4 Working with the List (DataType Tab)"}),"\n",(0,s.jsx)(n.p,{children:"The list panel offers the following operations."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Operation"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"+"})," (tooltip ",(0,s.jsx)(n.code,{children:"Add DataType"}),")"]}),(0,s.jsxs)(n.td,{children:["Creates a new type. The name is ",(0,s.jsx)(n.code,{children:"DataType"})," followed by ",(0,s.jsx)(n.strong,{children:"the current number of items in the list"}),", and ",(0,s.jsx)(n.strong,{children:"Category is empty"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"\u2212"})," (tooltip ",(0,s.jsx)(n.code,{children:"Delete selected DataType"}),")"]}),(0,s.jsxs)(n.td,{children:["Deletes the selected type without asking for confirmation. The BaseType, Element Type, Key Type, Value Type, and member types of other types that pointed at it ",(0,s.jsx)(n.strong,{children:"are cleared"})," (they are not replaced with another type)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"\u22EF"})," (tooltip ",(0,s.jsx)(n.code,{children:"More actions"}),")"]}),(0,s.jsx)(n.td,{children:"Opens the filter and sort popover"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Search"}),(0,s.jsxs)(n.td,{children:["The placeholder is ",(0,s.jsx)(n.code,{children:"search..."}),". It filters names by case-insensitive partial match"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Arrow keys"}),(0,s.jsx)(n.td,{children:"Focus the list and move the selection with the up and down arrow keys"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Category badges and filter state \u2014 with only ENUMERATION selected, the list title reads DataType [ENUMERATION]",src:t(281).A+"",width:"1657",height:"932"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"Category badges and filter state \u2014 with only ENUMERATION selected, the list title reads DataType [ENUMERATION]"})}),"\n",(0,s.jsxs)(n.p,{children:["The number in the name is the list length ",(0,s.jsx)(n.strong,{children:"including"})," the 11 built-in primitives. So in a\nproject with no user-defined types, the first type you create is named ",(0,s.jsx)(n.code,{children:"DataType11"}),", not\n",(0,s.jsx)(n.code,{children:"DataType0"}),". Names are not checked for duplicates, so creating a new type after deleting one in\nthe middle can collide with an existing name. In that case a ",(0,s.jsx)(n.code,{children:"Duplicate Short
1Name"})," error appears\nin the Validation panel."]}),"\n",(0,s.jsxs)(n.p,{children:["Because a new type has no Category, a ",(0,s.jsx)(n.code,{children:"Category is required"})," hint appears below the Category\nsegmented control, and an error appears in the Validation panel as well. The hint disappears once\nyou pick a category."]}),"\n",(0,s.jsxs)(n.p,{children:["Selecting a built-in primitive and clicking ",(0,s.jsx)(n.strong,{children:"\u2212"})," does nothing. Primitives cannot be deleted."]}),"\n",(0,s.jsx)(n.h3,{id:"the--menu",children:"The \u22EF Menu"}),"\n",(0,s.jsx)(n.p,{children:"The popover has the following sections."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Section"}),(0,s.jsx)(n.th,{children:"Items"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Filter by Category"})}),(0,s.jsxs)(n.td,{children:["Check boxes for the 9 categories, plus the ",(0,s.jsx)(n.strong,{children:"All"})," button on the right (tooltip ",(0,s.jsx)(n.code,{children:"Select All / Deselect All"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Sort by"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Default (Added Order)"})," / ",(0,s.jsx)(n.code,{children:"Name (A-Z)"})," / ",(0,s.jsx)(n.code,{children:"Category"})]})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"The \u22EF menu \u2014 the 9 Filter by Category entries and the 3 Sort by entries, with the tooltip of the All button visible",src:t(2657).A+"",width:"1661",height:"962"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"The \u22EF menu \u2014 the 9 Filter by Category entries and the 3 Sort by entries, with the tooltip of the All button visible"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"A type with no category assigned always appears, regardless of the filter."}),"\n",(0,s.jsxs)(n.li,{children:["The filter state appears in the list title. With everything selected (or everything cleared) it\nreads ",(0,s.jsx)(n.code,{children:"DataType"}),"; with one category selected, ",(0,s.jsx)(n.code,{children:"DataType [ALIAS]"}),"; with several,\n",(0,s.jsx)(n.code,{children:"DataType (3/9)"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"Sorting changes only the display order on screen. The order saved to the file stays the same."}),"\n",(0,s.jsxs)(n.li,{children:["Each list item carries a category badge in the form ",(0,s.jsx)(n.code,{children:"[ENUMERATION]"}),". Built-in primitive items\nare styled differently to set them apart."]}),"\n",(0,s.jsxs)(n.li,{children:["When there are no types at all, ",(0,s.jsx)(n.code,{children:"No DataTypes yet"})," and ",(0,s.jsx)(n.code,{children:"Click [+] to add manually"})," appear. When\na search or filter returns nothing, ",(0,s.jsx)(n.code,{children:"No matching DataTypes"})," appears."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"105-validation-panel",children:"10.5 Validation Panel"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"Validation"})," area at the bottom right of the DataType tab checks your edits in real time. It\nrefreshes about 0.3 seconds after an edit. When nothing is wrong, ",(0,s.jsx)(n.code,{children:"No validation issues"})," appears.\nWhen something is wrong, a summary such as ",(0,s.jsx)(n.code,{children:"2 errors, 1 warning"})," appears at the top with the\nindividual entries listed below it. ",(0,s.jsx)(n.strong,{children:"Click an entry to select that type in the list."})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"The summary and entries in the Validation panel, and the BaseType is required message shown directly on the BASETYPE field",src:t(7912).A+"",width:"1660",height:"972"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"The summary and entries in the Validation panel, and the BaseType is required message shown directly on the BASETYPE field"})}),"\n",(0,s.jsxs)(n.p,{children:["A message has the form ",(0,s.jsx)(n.code,{children:'[index] "type name" \u2014 text'}),". The index is the position in the list counted\nfrom 0, including the built-in primitives, and it does not change when you change the sort or the\nfilter."]}),"\n",(0,s.jsx)(n.h3,{id:"errors-error",children:"Errors (error)"}),"\n",(0,s.jsx)(n.p,{children:"The checks reported as errors, and their messages, are as follows."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Check"}),(0,s.jsx)(n.th,{children:"Message"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Missing name"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[0] ShortName is empty"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Category not set"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:'[0] "MyType" \u2014 Category is not set'})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Missing BaseType on ALIAS or ENUMERATION"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:'[0] "MyType" \u2014 BaseType is required'})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Factor of an ALIAS is 0"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:'[0] "MyType" \u2014 Factor must not be 0'})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Min > Max on an ALIAS"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:'[0] "MyType" \u2014 Min (10) > Max (5)'})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Missing Element Type on FIXED_ARRAY or DYNAMIC_ARRAY"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:'[0] "MyType" \u2014 Element Type is required'})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Array Size of a FIXED_ARRAY missing, or 0 or less"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:'[0] "MyType" \u2014 Array Size is required'})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Missing Key Type or Value Type on MAP"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:'[0] "MyType" \u2014 Key Type is required'})," / ",(0,s.jsx)(n.code,{children:"\u2014 Value Type is required"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Duplicate name"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:'[1] Duplicate Short
1Name: "MyType"'})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Self-reference"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"\u2014 Self-reference in BaseType/Element Type"})," / ",(0,s.jsx)(n.code,{children:"\u2014 Self-reference in Key Type"})," / ",(0,s.jsx)(n.code,{children:"\u2014 Self-reference in Value Type"})," / ",(0,s.jsx)(n.code,{children:"\u2014 Member[0] self-reference"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Circular reference"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:'[0] "A" \u2014 Circular reference: A -> B -> A'})})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"structure-and-enumeration-detail-errors",children:"Structure and Enumeration Detail Errors"}),"\n",(0,s.jsx)(n.p,{children:"The detail checks on members and literals are as follows."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Check"}),(0,s.jsx)(n.th,{children:"Message"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Missing member name"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"\u2014 Member[0] name is empty"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Member type not set"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"\u2014 Member[0] type is not set"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Duplicate member name"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:'\u2014 Duplicate member name: "value"'})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Missing literal name"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"\u2014 Literal[0] name is empty"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Duplicate literal name"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:'\u2014 Duplicate literal name: "on"'})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Duplicate literal value"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"\u2014 Duplicate literal value: 3"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Fractional literal value while BaseType is an integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"\u2014 Literal[0] value 1.5 is not an integer (BaseType is not float)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Literal value outside the BaseType range"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"\u2014 Literal[0] value 300 is out of BaseType range [0, 255]"})})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"warnings-warning",children:"Warnings (warning)"}),"\n",(0,s.jsx)(n.p,{children:"The following item is reported as a warning."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Check"}),(0,s.jsx)(n.th,{children:"Message"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Max Size of a STRING not set"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:'[0] "MyString" \u2014 Max Size not set, default 255 will be applied'})})]})})]}),"\n",(0,s.jsx)(n.h3,{id:"field-errors-that-appear-as-you-type",children:"Field Errors That Appear as You Type"}),"\n",(0,s.jsx)(n.p,{children:"Separately from the Validation panel, the following conditions appear directly below the field\nconcerned."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Target"}),(0,s.jsx)(n.th,{children:"Condition"}),(0,s.jsx)(n.th,{children:"Message"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Factor of an ALIAS"}),(0,s.jsx)(n.td,{children:"The value is 0"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Factor=0 is not valid for LINEAR conversion (constant = TEXTTABLE)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Min / Max of an ALIAS"}),(0,s.jsx)(n.td,{children:"Min > Max (on both fields)"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Min (10) > Max (5)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Array Size of a FIXED_ARRAY"}),(0,s.jsx)(n.td,{children:"Empty, or 0 or less"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Array Size is required"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"BaseType / 
1Element Type / Key Type / Value Type"}),(0,s.jsx)(n.td,{children:"Points at the type itself"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Self-reference is not allowed"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"A reference field required by the category"}),(0,s.jsx)(n.td,{children:"Empty"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"BaseType is required"})," / ",(0,s.jsx)(n.code,{children:"Element Type is required"})," / ",(0,s.jsx)(n.code,{children:"Key Type is required"})," / ",(0,s.jsx)(n.code,{children:"Value Type is required"})]})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"per-row-errors-in-members--enumeration",children:"Per-Row Errors in MEMBERS / ENUMERATION"}),"\n",(0,s.jsx)(n.p,{children:"Each row of the sub-table (10.3) has its own error display as well."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Target"}),(0,s.jsx)(n.th,{children:"Condition"}),(0,s.jsx)(n.th,{children:"Message"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Member or literal name"}),(0,s.jsx)(n.td,{children:"Empty"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Name is required"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Member or literal name"}),(0,s.jsx)(n.td,{children:"Collides with another row"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Duplicate name"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Member name"}),(0,s.jsx)(n.td,{children:"Breaks the AUTOSAR rules (warning)"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Must start with a letter, then letters/digits/underscores only"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Member type"}),(0,s.jsx)(n.td,{children:"Empty"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Type is required"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Member type"}),(0,s.jsx)(n.td,{children:"Points at the type itself"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Self-reference is not allowed"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Literal value"}),(0,s.jsx)(n.td,{children:"Collides with another row"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Duplicate value"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Literal value"}),(0,s.jsx)(n.td,{children:"Fractional while BaseType is an integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Not an integer (BaseType is not float)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Literal value"}),(0,s.jsx)(n.td,{children:"Outside the BaseType range"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Out of range [0, 255]"})})]})]})]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Per-row errors in an ENUMERATION table \u2014 the two rows with the same name are marked in red and Duplicate literal name appears in Validation",src:t(1144).A+"",width:"1664",height:"962"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"Per-row errors in an ENUMERATION table \u2014 the two rows with the same name are marked in red and Duplicate literal name appears in Validation"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"DYNAMIC_ARRAY has no required-size check."})," As long as Element Type is set, nothing is\nreported as an error. Max Size is an optional property that expresses an upper bound."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"106-preview-panel",children:"10.6 Preview Panel"}),"\n",(0,s.jsxs)(n.p,{children:["Preview visualizes the structure of the selected type per category. When no type is selected,\n",(0,s.jsx)(n.code,{children:"Select a DataType to preview"})," appears. The contents per category are as follows."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Category"}),(0,s.jsx)(n.th,{children:"Contents"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PRIMITIVE"}),(0,s.jsxs)(n.td,{children:["The size, the encoding, and a value range bar (for ",(0,s.jsx)(n.code,{children:"boolean"})," the two ends read ",(0,s.jsx)(n.code,{children:"false"})," and ",(0,s.jsx)(n.code,{children:"true"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ALIAS"}),(0,s.jsxs)(n.td,{children:["The ",(0,s.jsx)(n.code,{children:"Base"})," information (with a ",(0,s.jsx)(n.code,{children:"Unit"})," row appended when a Unit is set), the Raw-to-Physical graph, and the value converter. The formula line (",(0,s.jsx)(n.code,{children:"physical = 0.1 \xd7 raw + 0"}),") appears only when Factor is not 1 or Offset is not 0"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"STRUCTURE"}),(0,s.jsxs)(n.td,{children:["A ",(0,s.jsx)(n.code,{children:"struct (3 members)"})," summary and a grid of member boxes. Optional members are marked separately. With no members, ",(0,s.jsx)(n.code,{children:"(empty struct)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"UNION"}),(0,s.jsxs)(n.td,{children:["A ",(0,s.jsx)(n.code,{children:"union (3 variants)"})," summary and a grid of member boxes. With no members, ",(0,s.jsx)(n.code,{children:"(empty union)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ENUMERATION"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"base: uint8"})," and literal chips (name plus value). With no literals, ",(0,s.jsx)(n.code,{children:"No literals defined"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"FIXED_ARRAY / DYNAMIC_ARRAY"}),(0,s.jsx)(n.td,{children:"An array diagram showing the element type and the length"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"STRING"}),(0,s.jsx)(n.td,{children:"A diagram of character cells, one per maximum-length character"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MAP"}),(0,s.jsxs)(n.td,{children:["A ",(0,s.jsx)(n.code,{children:"map<Key, Value>"})," summary and two boxes, ",(0,s.jsx)(n.code,{children:"Key"})," and ",(0,s.jsx)(n.code,{children:"Value"})]})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["The ALIAS Preview also places a ",(0,s.jsx)(n.strong,{children:"value converter"})," below the graph. Enter a ",(0,s.jsx)(n.code,{children:"Raw"})," value on the\ntop line and the ",(0,s.jsx)(n.code,{children:"Physical"})," value appears on the right; enter a ",(0,s.jsx)(n.code,{children:"Physical"})," value on the bottom\nline and the ",(0,s.jsx)(n.code,{children:"Raw"})," value appears on the right, immediately and to two decimal places. You can also\nscroll the mouse wheel over a field to raise and lower the value. The converter is a calculator\nfor checking that Factor and Offset behave as you intended, and it ",(0,s.jsx)(n.strong,{children:"does not change the model."}),"\nThe unit side has a converter of the same kind (10.8)."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"ALIAS Preview \u2014 the Base information, the conversion graph, and the Raw-to-Physical value converter",src:t(3898).A+"",width:"670",height:"400"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"ALIAS Preview \u2014 the Base information, the conversion graph, and the Raw-to-Physical value converter"})}),"\n",(0,s.jsxs)(n.p,{children:["Click the type name of a member or an element to ",(0,s.jsx)(n.strong,{children:"drill into that type, and Preview changes to\nit."})," A ",(0,s.jsx)(n.code,{children:"\u2190 Back"})," button then appears at the top left so you can return to the previous type.\nBuilt-in primitives have no further structure to expand, so they are not clickable."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Preview drill-down \u2014 the state after clicking a member type to drill into 
1it. \u2190 Back appears and the selection in the form on the left is unchanged",src:t(6).A+"",width:"1661",height:"963"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"Preview drill-down \u2014 the state after clicking a member type to drill into it. \u2190 Back appears and the selection in the form on the left is unchanged"})}),"\n",(0,s.jsx)(n.h2,{id:"107-the-11-built-in-primitives",children:"10.7 The 11 Built-In Primitives"}),"\n",(0,s.jsxs)(n.p,{children:["PAIO manages the following 11 names as ",(0,s.jsx)(n.strong,{children:"reserved words"}),". These types are injected into memory\nautomatically when the editor opens, and they are ",(0,s.jsx)(n.strong,{children:"not saved to the model file."})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Size / encoding"}),(0,s.jsx)(n.th,{children:"C declaration"}),(0,s.jsx)(n.th,{children:"C++ mapping"}),(0,s.jsx)(n.th,{children:"Value range"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"8 / BOOLEAN"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"unsigned char"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"bool"})}),(0,s.jsx)(n.td,{children:"0 ~ 1"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"float32"})}),(0,s.jsx)(n.td,{children:"32 / IEEE754"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"float"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"float"})}),(0,s.jsx)(n.td,{children:"\xb13.4028235e+38"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"float64"})}),(0,s.jsx)(n.td,{children:"64 / IEEE754"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"double"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"double"})}),(0,s.jsx)(n.td,{children:"\xb11.7976931348623157e+308"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sint8"})}),(0,s.jsx)(n.td,{children:"8 / 2C"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"signed char"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"int8_t"})}),(0,s.jsx)(n.td,{children:"-128 ~ 127"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sint16"})}),(0,s.jsx)(n.td,{children:"16 / 2C"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"signed short"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"int16_t"})}),(0,s.jsx)(n.td,{children:"-32768 ~ 32767"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sint32"})}),(0,s.jsx)(n.td,{children:"32 / 2C"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"signed long"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"int32_t"})}),(0,s.jsx)(n.td,{children:"-2147483648 ~ 2147483647"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"sint64"})}),(0,s.jsx)(n.td,{children:"64 / 2C"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"signed long long"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"int64_t"})}),(0,s.jsx)(n.td,{children:"-9223372036854775808 ~ 9223372036854775807"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"uint8"})}),(0,s.jsx)(n.td,{children:"8 / NONE"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"unsigned char"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"uint8_t"})}),(0,s.jsx)(n.td,{children:"0 ~ 255"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"uint16"})}),(0,s.jsx)(n.td,{children:"16 / NONE"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"unsigned short"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"uint16_t"})}),(0,s.jsx)(n.td,{children:"0 ~ 65535"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"uint32"})}),(0,s.jsx)(n.td,{children:"32 / NONE"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"unsigned long"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"uint32_t"})}),(0,s.jsx)(n.td,{children:"0 ~ 4294967295"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"uint64"})}),(0,s.jsx)(n.td,{children:"64 / NONE"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"unsigned long long"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"uint64_t"})}),(0,s.jsx)(n.td,{children:"0 ~ 18446744073709551615"})]})]})]}),"\n",(0,s.jsx)(n.p,{children:"Keep the following points in mind."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Inside the model, always use the AUTOSAR notation (",(0,s.jsx)(n.code,{children:"uint8"}),"). C++ notation such as ",(0,s.jsx)(n.code,{children:"uint8_t"}),"\nappears ",(0,s.jsx)(n.strong,{children:"only when you export C++ ARXML."})]}),"\n",(0,s.jsxs)(n.li,{children:["You cannot give a user-defined type one of these 11 names. If you try,\n",(0,s.jsx)(n.code,{children:"'uint8' is a reserved built-in primitive name"})," appears on the field and the value is not saved."]}),"\n",(0,s.jsx)(n.li,{children:"You cannot change the name or the properties of a primitive, and you cannot delete one (every\nfield is read-only)."}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Primitives missing from the file are normal, not a loss."})," Their definitions are built into\nthe tool, so there is no reason to save them, and saving them could conflict with the built-in\ndefinitions the next time the file opens. The schema also forbids these 11 names. Other types\nsimply reference a primitive by name."]}),"\n",(0,s.jsxs)(n.li,{children:["If the file contains an item whose name is a reserved word but whose category is not PRIMITIVE,\nPAIO ",(0,s.jsx)(n.strong,{children:"treats that item as corrupted and discards it"}),", then injects the correct built-in\ndefinition again."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"the-structure-created-on-export",children:"The Structure Created on Export"}),"\n",(0,s.jsx)(n.p,{children:"A single primitive is exported as four AUTOSAR representations together."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Representation"}),(0,s.jsx)(n.th,{children:"Name"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"SW-BASE-TYPE"}),(0,s.jsx)(n.td,{children:"Exactly the name shown in the editor"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"APPLICATION-PRIMITIVE-DATA-TYPE"}),(0,s.jsxs)(n.td,{children:["Exactly the name shown in the editor (only ",(0,s.jsx)(n.code,{children:"boolean"})," gets CATEGORY ",(0,s.jsx)(n.code,{children:"BOOLEAN"}),"; the rest get ",(0,s.jsx)(n.code,{children:"VALUE"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"IMPLEMENTATION-DATA-TYPE (C)"}),(0,s.jsx)(n.td,{children:"Exactly the name shown in the editor"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"STD-CPP-IMPLEMENTATION-DATA-TYPE (C++)"}),(0,s.jsxs)(n.td,{children:["The C++ name (",(0,s.jsx)(n.code,{children:"uint8_t"}),", ",(0,s.jsx)(n.code,{children:"bool"}),", and so on)"]})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["Two DATA-TYPE-MAPPING-SET elements are appended automatically as well. They are named\n",(0,s.jsx)(n.code,{children:"DataTypeMappingsCP"})," (Application to the C implementation) and ",(0,s.jsx)(n.code,{children:"DataTypeMappingsAP"}),"\n(Application to the C++ implementation)."]}),"\n",(0,s.jsx)(n.h2,{id:"108-unit-tab",children:"10.8 Unit Tab"}),"\n",(0,s.jsx)(n.h3,{id:"list",children:"List"}),"\n",(0,s.jsx)(n.p,{children:"The unit list offers the following operations."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Operation"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"+"})," (tooltip ",(0,s.jsx)(n.code,{children:"Add Unit"}),")"]}),(0,s.jsxs)(n.td,{children:["Creates a new unit. The name is ",(0,s.jsx)(n.code,{children:"Unit"})," followed by the current number of items in the list"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"-"})," (tooltip ",(0,s.jsx)(n.code,{children:"Delete selected Unit"}),")"]}),(0,s.jsx)(n.td,{children:"Deletes the selected unit without asking for confirmation"})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["Because the 33 default units already fill the list, the first unit you create in a project with\nnothing added is named ",(0,s.jsx)(n.code,{children:"Unit33"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"editable-properties",children:"Editable Properties"}),"\n",(0,s.jsx)(n.p,{children:"A unit has the following editable properties."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Property"}),(0,s.jsx)(n.th,{children:"Form"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"NAME"})}),(0,s.jsx)(n.td,{children:"Text"}),(0,s.jsx)(n.td,{children:"Follows the AUTOSAR SHORT-NAME rules. A value that breaks the rules is not saved"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"DisplayName"})}),(0,s.jsx)(n.td,{children:"Text"}),(0,s.jsxs)(n.td,{children:["The symbol shown on screen (",(0,s.jsx)(n.code,{children:"km/h"}),", ",(0,s.jsx)(n.code,{children:"%"}),", and so on)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"FactorSiToUnit"})}),(0,s.jsx)(n.td,{children:"Real number"}),(0,s.jsx)(n.td,{children:"The conversion factor from the SI unit to this unit"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"OffsetSiToUnit"})}),(0,s.jsx)(n.td,{children:"Real number"}),(0,s.jsx)(n.td,{children:"The conversion offset from the SI unit to this unit"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Description"})}),(0,s.jsx)(n.td,{children:"Multi-line text"}),(0,s.jsx)(n.td,{})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"Unit"})," property of an ALIAS type references a unit defined here."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Renaming a unit"})," also updates the ",(0,s.jsx)(n.code,{children:"Unit"})," value of every data type that referenced it."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Deleting a unit"})," clears the ",(0,s.jsx)(n.code,{children:"Unit"})," value of every data type that referenced it."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"preview",children:"Preview"}),"\n",(0,s.jsx)(n.p,{children:"Preview on the right shows the conversion of the selected unit in several forms at once (see the\nUnit tab figure above). From top to bottom:"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Area"}),(0,s.jsx)(n.th,{children:"Contents"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Header"}),(0,s.jsxs)(n.td,{children:["The form ",(0,s.jsx)(n.code,{children:"DisplayName[NAME]"})," (",(0,s.jsx)(n.code,{children:"km/h[Kilometer]"}
1),"). Without a DisplayName, only the name appears"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Conversion formula"}),(0,s.jsxs)(n.td,{children:["The form ",(0,s.jsx)(n.code,{children:"km = 0.001 \xd7 m"}),". The multiplication term drops out when Factor is 1, and the addition term drops out when Offset is 0"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Graph"}),(0,s.jsx)(n.td,{children:"A straight line with the SI value on the horizontal axis and this unit's value on the vertical axis"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Domain badge"}),(0,s.jsx)(n.td,{children:"See the explanation below"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Conversion table"}),(0,s.jsx)(n.td,{children:"A table of a few representative SI values converted to this unit. The sample values are chosen automatically to match the magnitude of Factor"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Comparison bars"}),(0,s.jsxs)(n.td,{children:["Two bars below ",(0,s.jsx)(n.code,{children:"SI 1 = ?"})," that compare the size of 1 SI with the corresponding unit value"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Value converter"}),(0,s.jsx)(n.td,{children:"Enter an SI value and the unit value appears; enter a unit value and the SI value appears, immediately. The fields accept the mouse wheel as well"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Description"}),(0,s.jsxs)(n.td,{children:["Whatever you wrote in ",(0,s.jsx)(n.code,{children:"Description"})]})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"The domain badge appears only when Factor and Offset match an already known conversion."})," The\ntool holds a table of 29 conversions across 12 domains \u2014 speed, temperature, pressure, length,\nmass, time, angle, frequency, voltage, current, torque, and ratio. When the Factor and Offset of\nthe unit you are editing match one of them to within 1%, PAIO shows a badge with the domain name,\nsuch as ",(0,s.jsx)(n.code,{children:"LENGTH"}),", and a symbol pair, such as ",(0,s.jsx)(n.code,{children:"m \u2192 km"}),". The ",(0,s.jsx)(n.code,{children:"SI"})," placeholder in the conversion\nformula and in the conversion table then changes to the actual SI symbol (",(0,s.jsx)(n.code,{children:"m"}),") as well. When no\nconversion matches, no badge appears and the literal text ",(0,s.jsx)(n.code,{children:"SI"})," is used \u2014 this is the case for\nunits whose ",(0,s.jsx)(n.code,{children:"FactorSiToUnit"})," is 1 (",(0,s.jsx)(n.code,{children:"Volt"}),", ",(0,s.jsx)(n.code,{children:"Meter"}),", ",(0,s.jsx)(n.code,{children:"Second"}),", and so on), and it is normal."]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"When several candidates match, the name breaks the tie."})," Factor 0.001 matches all six of the\n",(0,s.jsx)(n.code,{children:"kPa"}),", ",(0,s.jsx)(n.code,{children:"km"}),", ",(0,s.jsx)(n.code,{children:"t"}),", ",(0,s.jsx)(n.code,{children:"kV"}),", ",(0,s.jsx)(n.code,{children:"kHz"}),", and ",(0,s.jsx)(n.code,{children:"kN\xb7m"})," conversions, but the unit name is ",(0,s.jsx)(n.code,{children:"Kilometer"}),", so the\nlength conversion wins. When the name does not break the tie either, the conversion that comes\nfirst in the table is used, so a unit you create yourself may get a domain badge that does not\nmatch reality. The badge is informational only and is not saved to the model."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"the-33-default-units",children:"The 33 Default Units"}),"\n",(0,s.jsxs)(n.p,{children:["When a project opens, the list is filled automatically with 33 commonly used units (",(0,s.jsx)(n.code,{children:"NoUnit"}),",\n",(0,s.jsx)(n.code,{children:"Percent"}),", ",(0,s.jsx)(n.code,{children:"Radian"}),", ",(0,s.jsx)(n.code,{children:"Degree"}),", ",(0,s.jsx)(n.code,{children:"Meter"}),", ",(0,s.jsx)(n.code,{children:"Millimeter"}),", ",(0,s.jsx)(n.code,{children:"Kilometer"}),", ",(0,s.jsx)(n.code,{children:"Kilogram"}),", ",(0,s.jsx)(n.code,{children:"Gram"}),", ",(0,s.jsx)(n.code,{children:"Second"}),",\n",(0,s.jsx)(n.code,{children:"Millisecond"}),", ",(0,s.jsx)(n.code,{children:"Microsecond"}),", ",(0,s.jsx)(n.code,{children:"Ampere"}),", ",(0,s.jsx)(n.code,{children:"Milliampere"}),", ",(0,s.jsx)(n.code,{children:"Kelvin"}),", ",(0,s.jsx)(n.code,{children:"DegreeCelsius"}),",\n",(0,s.jsx)(n.code,{children:"MetersPerSecond"}),", ",(0,s.jsx)(n.code,{children:"KilometersPerHour"}),", ",(0,s.jsx)(n.code,{children:"RadiansPerSecond"}),", ",(0,s.jsx)(n.code,{children:"RevolutionsPerMinute"}),", ",(0,s.jsx)(n.code,{children:"Hertz"}),",\n",(0,s.jsx)(n.code,{children:"Newton"}),", ",(0,s.jsx)(n.code,{children:"Pascal"}),", ",(0,s.jsx)(n.code,{children:"KiloPascal"}),", ",(0,s.jsx)(n.code,{children:"Bar"}),", ",(0,s.jsx)(n.code,{children:"Joule"}),", ",(0,s.jsx)(n.code,{children:"KilowattHour"}),", ",(0,s.jsx)(n.code,{children:"Watt"}),", ",(0,s.jsx)(n.code,{children:"Kilowatt"}),",\n",(0,s.jsx)(n.code,{children:"NewtonMeter"}),", ",(0,s.jsx)(n.code,{children:"Volt"}),", ",(0,s.jsx)(n.code,{children:"Millivolt"}),", ",(0,s.jsx)(n.code,{children:"Ohm"}),")."]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"A unit left at its default values is not saved to the file."})," At save time PAIO records only\nthe units whose values differ from the defaults and the units some data type actually\nreferences. The reason is the same as for the primitives: information the tool always fills in\nshould not be duplicated in the file. So a saved file may show a short or empty unit list when\nyou open it, and that is normal."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"109-saving-and-undo",children:"10.9 Saving and Undo"}),"\n",(0,s.jsx)(n.p,{children:"The save and undo shortcuts are as follows."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Operation"}),(0,s.jsx)(n.th,{children:"Shortcut"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Save"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Ctrl+S"})}),(0,s.jsx)(n.td,{children:"Works while the tab is visible on screen"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Save As"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Ctrl+Shift+S"})}),(0,s.jsxs)(n.td,{children:["Opens the ",(0,s.jsx)(n.code,{children:"Save DataTypes"})," dialog for choosing the save location. The extension is appended automatically if you omit it"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Undo"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Ctrl+Z"})}),(0,s.jsx)(n.td,{})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Redo"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Ctrl+Y"})," or ",(0,s.jsx)(n.code,{children:"Ctrl+Shift+Z"})]}),(0,s.jsx)(n.td,{})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["On s
1ave, the value you were typing is committed before the file is written, so a value is saved\neven if you press ",(0,s.jsx)(n.code,{children:"Ctrl+S"})," immediately after typing it."]}),"\n",(0,s.jsxs)(n.li,{children:["Undo uses a single timeline shared by the whole project. The Edit menu in the header and\nUndo/Redo in the command palette use the same timeline\n(",(0,s.jsx)(n.a,{href:"/docs/paio/user-guide/ui-guide",children:"05. UI Layout and Navigation"}),")."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsxs)(n.strong,{children:["Once you save to another path with ",(0,s.jsx)(n.code,{children:"Ctrl+Shift+S"}),", later ",(0,s.jsx)(n.code,{children:"Ctrl+S"})," presses save to that path as\nwell."]})," To go back to the DataType model at the project's standard location, close the editor\nand open it again."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1010-integration-with-other-screens",children:"10.10 Integration with Other Screens"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Interface editor"})," \u2014 The right panel holds the same DataType editor in compact mode (see\n10.1)."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Initial value (ValueSpec) editor"})," \u2014 It reads the type structure defined here to decide the\ninput form. A structure becomes a table, an array becomes indexed rows, and an enumeration\nbecomes a combo box. Signal initial values are the exception: because a signal does not\nreference a data type, the input form is built from the signal's own properties (see\n",(0,s.jsx)(n.a,{href:"/docs/paio/editors/signal-editor",children:"07. Signal Editor"}),", 7.11)."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Rename propagation"})," \u2014 Renaming a type also updates the type references in the Interface\nmodel and in the ECUC configuration, including the ones you have not opened. SWC definitions are\nnot part of this propagation."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Validation"})," \u2014 The Validation panel of this editor covers only the structural checks of the\ndata types themselves. Project-wide AUTOSAR constraint checks are shown in a separate panel (see\n",(0,s.jsx)(n.a,{href:"/docs/paio/workflow/validation",children:"14. Validation"}),")."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"1011-editing-rules-summary",children:"10.11 Editing Rules Summary"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Names follow the AUTOSAR SHORT-NAME rules: the first character is a letter, and the rest are\nletters, digits, and underscores. Unit names are also checked against a 128-character limit,\nwhile data type names are not checked for length."}),"\n",(0,s.jsx)(n.li,{children:"A type name is not saved if it is empty or a reserved word (one of the 11 built-in primitives).\nA name that does not match the rules shows a warning on the field, but the value itself is\napplied. Exporting ARXML in that state produces a document that does not match the schema, so\nfix any name that shows a warning before you use it."}),"\n",(0,s.jsx)(n.li,{children:"Member and literal names are stricter: a name that does not match the rules is not applied at\nall, and the previous name is kept."}),"\n",(0,s.jsx)(n.li,{children:"You cannot change the name or the properties of a built-in primitive, and you cannot delete one."}),"\n",(0,s.jsx)(n.li,{children:"The list sort and filter, the panel sizes, and the scroll position are screen state only and are\nnot saved to the file."}),"\n"]})]})}function o(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},721(e,n,t){t.d(n,{A:()=>i});let i=t.p+"assets/images/10-01-overview-214231c6c7bece58a294fa06716575f1.png"},3725(e,n,t){t.d(n,{A:()=>i});let i=t.p+"assets/images/10-02-unit-tab-8099fdcb0a0fb15abc5c737c09f4ebd2.png"},9922(e,n,t){t.d(n,{A:()=>i});let i=t.p+"assets/images/10-03-interface-embedded-436bec8cd96156baa3ef03187fff19c3.png"},8155(e,n,t){t.d(n,{A:()=>i});let i="data:image/png;base64,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"},5145(e,n,t){t.d(n,{A:()=>i});let i=t.p+"assets/images/10-05-basetype-dropdown-ce43dae7accfee58f046697c0bf1ba2c.png"},307(e,n,t){t.d(n,{A:()=>i});let i=t.p+"assets/images/10-06-members-table-4e0a3dacf439327d067c91968ee3dda9.png"},281(e,n,t){t.d(n,{A:()=>i});let i=t.p+"assets/images/10-07-list-badges-49b1298f319566beb716f4f72be86d26.png"},2657(e,n,t){t.d(n,{A:()=>i});let i=t.p+"assets/images/10-08-filter-popover-c1cb1c3593353ea0e49a6ca1055b8065.png"},7912(e,n,t){t.d(n,{A:()=>i});let i=t.p+"assets/images/10-09-validation-panel-1670147a5796ab24b14572d85770568a.png"},1144(e,n,t){t.d(n,{A:()=>i});let i=t.p+"assets/images/10-10-enum-row-errors-4a624142ee4cc03a739bb4aa27e9bc97.png"},3898(e,n,t){t.d(n,{A:()=>i});let i=t.p+"assets/images/10-11-alias-preview-1ec806d4e8fb7b8f1e1ef7161383f8f4.png"},6(e,n,t){t.d(n,{A:()=>i});let i=t.p+"assets/images/10-12-preview-drilldown-7bb0c26dff230ebbb7d3b7cca62499a3.png"},8453(e,n,t){t.d(n,{R:()=>d,x:()=>l});var i=t(6540);let s={},r=i.createContext(s);function d(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.