AUTOSARTPSSoftwareComponentTemplate36数据类型实现2

Grey

全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!

AUTOSARTPSSoftwareComponentTemplate36数据类型实现2

导言

继续学习AUTOSAR,依然是从官方的文档开始。这一次的学习笔记再次使用emacs org-mode来管理,做一个尝试。

翻译与记录

952_AUTOSAR_TPS_SoftwareComponentTemplate36_数据类型实现2_配置文件

  • 指示数组是否应该具有固定大小或实际大小是否可能在运行时发生变化


还可以指示数组是否应该具有固定大小,或者实际大小是否可能在运行时发生变化。
与 ApplicationDataType 一样,也可以指定一个可变大小数组的大小指示符,该数组在 ImplementationDataType 中保存数组的有效元素的数量。
请在第 5.2.4.2 节中找到有关此主题的更多信息。

952_AUTOSAR_TPS_SoftwareComponentTemplate36_数据类型实现2_autosar_02

  • 仅使用 ImplementationDataType 对可变大小数组数据类型进行建模
     

可变大小数组数据类型的建模不需要 ApplicationCompositeDataType 和 DataTypeMap 的存在。 只需设置一个 ImplementationDataType 就可以创建一个可变大小的数组数据类型。
启用大小指示器的可变大小数组数据类型的建模
SizeProfile 存在表示启用了大小指示器的可变大小数组数据类型。
为了术语的正确定义,此ImplementationDataType 应称为VSA ImplementationDataType。
#+ATTRLATEX: :width 0.5]

  • VSA ImplementationDataType的结构
     

VSA ImplementationDataType应包括
•一个表示大小指示器的ImplementationDataTypeElement和
•一个表示可变大小阵列数据类型有效负载的ImplementationDataTypeElement(见第2.8.1.2节)。
为了正确定义术语,这些实现DataTypeElement应分别称为VSA大小指示器实现DataTypeElement和VSA有效负载实现DataTypeElement。

952_AUTOSAR_TPS_SoftwareComponentTemplate36_数据类型实现2_it技术_03

  • arraySizeHandling指定如何确定大小
     

arraySizeHandling指定在多维可变大小数组的情况下如何确定大小。
[TPSSWCT01612]的声明允许在多个维度的情况下指定嵌套可变大小数组大小之间的一致性。
映射的ImplementationDataType的内部结构
属性dynamicArraySizeProfile指定ImplementationDataType应遵循的内部结构。
#+ATTRLATEX: :width 0.5]

  • 映射的ImplementationDataType的内部结构的配置文件
     

对于ImplementationDataType的结构,为DynamicCarraySizeProfile定义了以下配置文件:SALINEAR, VSASQUARE,VSARECTANGULAR and VSAFULLYFLEXIBLE.
映射的ImplementationDataType的内部结构的自定义配置文件
可以将自定义配置文件添加到dynamicArraySizeProfile。它们应具有特定于公司的前缀。
出于可读性和可理解性的原因,以下约束仅关注可变大小数组数据类型的有效负载。对于尺寸指示器,其他单个约束确实适用。
#+ATTRLATEX: :width 0.5]

  • ImplementationDataType的配置文件VSALINEAR
     

如果属性ImplementationDataType.DynamicCarraySizeProfile的值设置为VSALINEAR,则ImplementationDataType应聚合满足以下所有条件的VSA有效负载ImplementationDataTypeElement:
•不应定义属性ImplementationDataTypeElement.arraySizeSemantics。
•属性ImplementationDataTypeElement.category应设置为ARRAY。
•不应定义属性ImplementationDataTypeElement.arraySize。
•不应定义属性ImplementationDataTypeElement.arraySizeHandling。
VSA有效负载ImplementationDataTypeElement应立即聚合另一个应满足以下所有条件的ImplementationDataTypeElement:•属性ImplementationDataTypeElement.arraySizeSemantics应设置为值variableSize。
•应定义属性ImplementationDataTypeElement.arraySize。
•属性ImplementationDataTypeElement.arraySizeHandling应设置为AllindiceSameArraySize的值。
请注意,由VSA有效负载ImplementationDataTypeElement聚合的ImplementationDataTypeElement基本上可以具有属性类别的任何可能值。
#+ATTRLATEX: :width 0.5]

  • ImplementationDataType的配置文件VSASQUARE
     

如果属性ImplementationDataType.DynamicCarraySizeProfile的值设置为VSASQUARE,则ImplementationDataType应聚合满足以下所有条件的VSA有效负载ImplementationDataTypeElement:
•不应定义属性ImplementationDataTypeElement.arraySizeSemantics。
•属性ImplementationDataTypeElement.category应设置为值数组。
•不应定义属性ImplementationDataTypeElement.arraySize。
•不应定义属性ImplementationDataTypeElement.arraySizeHandling。
VSA有效负载ImplementationDataTypeElement应立即聚合另一个应满足以下所有条件的ImplementationDataTypeElement(表示第一维度):
•属性ImplementationDataTypeElement.arraySizeSemantics应设置为值variableSize。
•属性ImplementationDataTypeElement.category应设置为值数组。
•不应定义属性ImplementationDataTypeElement.arraySize。
•属性ImplementationDataTypeElement.arraySizeHandling应设置为从ArrayElementTypeSize继承的值。
聚合链中未终止链的所有中间实现DataTypeElement应满足以下所有条件:
•属性ImplementationDataTypeElement.arraySizeSemantics应设置为值variableSize。
•属性ImplementationDataTypeElement.category应设置为值数组。
•不应定义属性ImplementationDataTypeElement.arraySize。
•属性ImplementationDataTypeElement.arraySizeHandling应设置为从ArrayElementTypeSize继承的值。
聚合链中终止的ImplementationDataTypeElement应满足以下所有条件:
•属性ImplementationDataTypeElement.arraySizeSemantics应设置为值variableSize。
•应定义属性ImplementationDataTypeElement.arraySize。
•属性ImplementationDataTypeElement.arraySizeHandling应设置为AllindiceSameArraySize的值。

小结

这是数据类型实现的第二部分,主要还是偏向于工具的设计。顺便给我现在的emacs配置做一个总结,总结一下使用的体验。现在的配置其实基本上可以满足一个笔记的记录需求了,对于轻度的剪切板的使用支持也可以了,不过从编辑的排版等技巧上还不是很够。可能是我自己技巧掌握的还不是很到位,后续技能增长一下之后这方面或许还有改善。目前遇到的几个痛点:

  • 中英文混合下,字符搜索跳转的精准度不行,得借助于鼠标;
  • 分段以及续行的处理比较麻烦,为了生成新的一行,我现在反复增加结束符;
  • 没有实现行首的空格缩进,即使是加了空白在文档生成的时候也会自动移除;
  • 纯文本的排版直观度也不是很好。
     

带着这些问题,后面继续学习改进吧!