VSIDL-এ স্কেলেবল সার্ভিস-ওরিয়েন্টেড মিডলওয়্যার ওভার আইপি (SOME/IP) ম্যাপিং সংজ্ঞায়িত করার সময়, আপনাকে প্রতিটি SOME/IP মেসেজের ওয়্যার ফরম্যাট সিরিয়ালাইজেশন এবং পেলোড এনকোডিং বর্ণনা করতে হয়। SomeIpType এবং SomeIpStruct ডেফিনিশন ব্যবহার করে, আপনি প্রিমিটিভ, স্ট্রিং, অ্যারে এবং নেস্টেড স্ট্রাক্ট মডেল করতে পারেন যা AUTOSAR ARXML ( SOMEIP-TRANSFORMATION-PROPS ) এবং SOME/IP স্ট্যাক পেলোড এনকোডিং নিয়ম (COVESA vsomeip সহ) মেনে চলে।
এই পৃষ্ঠায় SomeIpStruct টাইপ ডেফিনিশন কীভাবে লিখতে হয় তার উপর আলোকপাত করা হয়েছে, যা ইভেন্ট এবং মেথড ম্যাপিংয়ের জন্য type_definition ব্লকে ব্যবহৃত হয়।
SomeIpStruct বার্তা
একটি SomeIpStruct মেসেজ একাধিক ফিল্ড সমন্বিত একটি স্ট্রাকচার্ড SOME/IP পেলোডকে উপস্থাপন করে। এখানে সংজ্ঞায়িত কাঠামোটি SOME/IP ব্রোকার দ্বারা কাঁচা SOME/IP বাইট এবং একটি SDV প্রোটোবাফ মেসেজের ফিল্ডগুলির মধ্যে অনুবাদ করার জন্য ব্যবহৃত হয়।
একটি স্ট্রাক্ট সংজ্ঞায়িত করার সময়, আপনাকে দুটি প্রধান প্রপার্টি কনফিগার করতে হয়:
-
length_field_size(ঐচ্ছিক): সিরিয়ালাইজড পেলোডে স্ট্রাক্টের আগে থাকা লেংথ ফিল্ডের আকার (বাইটে) নির্দিষ্ট করে।LengthFieldSizeenum থেকে ব্যবহৃত মানগুলির মধ্যে রয়েছেZERO(কোনো লেংথ ফিল্ড নেই),ONE,TWOএবংFOUR। -
field(পুনরাবৃত্তি): struct-টি গঠনকারী ফিল্ডগুলোর তালিকা।
স্ট্রাক্ট ফিল্ডগুলি সংজ্ঞায়িত করুন
SomeIpStruct ভেতরের প্রতিটি ফিল্ডের জন্য প্রয়োজন:
-
field_name: ফিল্ডের নাম। সঠিক বার্তা অনুবাদ নিশ্চিত করার জন্য, এই নামটি অবশ্যই SDV প্রোটোবাফ বার্তায় সংজ্ঞায়িত সংশ্লিষ্ট ফিল্ডের নামের সাথে হুবহু মিলতে হবে। -
field_type: ফিল্ডটির SOME/IP ডেটা টাইপ (SomeIpType)। এটি একটি প্রিমিটিভ, স্ট্রিং, অ্যারে বা অন্য কোনো নেস্টেড স্ট্রাক্ট হতে পারে।
কিছুআইপিটাইপ ফিল্ডের প্রকার লিখুন
field_type ব্লকটি নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করে নির্দিষ্ট ডেটা টাইপ কনফিগার করে:
- প্রিমিটিভ টাইপ:
UINT8,UINT32,INT32,FLOAT32, এবংBOOLমতো ভ্যালুগুলোর সাথেsomeip_primitiveব্যবহার করুন। - স্ট্রিং:
someip_stringব্যবহার করুন এবং এনকোডিং (যেমন,UTF_8বাUTF_16_LE) ও দৈর্ঘ্যের তথ্য (fixed_lengthবাlength_field_size) উল্লেখ করুন। - অ্যারে:
someip_arrayব্যবহার করুন এবংarray_type(যা আরেকটি রিকার্সিভSomeIpType) সংজ্ঞায়িত করুন, সাথে দৈর্ঘ্যের তথ্যও (fixed_lengthবাlength_field_size) দিন। - নেস্টেড স্ট্রাক্ট: অন্য একটি স্ট্রাক্ট ডেফিনিশনকে রিকার্সিভলি এমবেড করতে
someip_structব্যবহার করুন।
উদাহরণ: একটি struct টাইপের সংজ্ঞা লিখুন।
type_definition ব্লকের ভিতরে কিভাবে একটি SomeIpStruct লিখতে হয় তার একটি বাস্তব উদাহরণ এখানে দেওয়া হলো। এই পেলোডটিতে interval নামের একটি ৮-বিটের আনসাইনড ইন্টিজার এবং counter নামের একটি ৩২-বিটের আনসাইনড ইন্টিজার রয়েছে:
type_definition {
# No length field precedes this struct
length_field_size: ZERO
# First field: interval
field {
field_name: "interval"
field_type {
someip_primitive: UINT8
}
}
# Second field: counter
field {
field_name: "counter"
field_type {
someip_primitive: UINT32
}
}
}
জটিল প্রকার যোগ করুন
struct-এর ভিতরে একটি পরিবর্তনশীল দৈর্ঘ্যের স্ট্রিং ফিল্ড এবং একটি অ্যারে অন্তর্ভুক্ত করতে, ফিল্ডগুলি এইভাবে যোগ করুন:
field {
field_name: "status_message"
field_type {
someip_string {
string_encoding: UTF_8
length_field_size: FOUR
}
}
}
field {
field_name: "measurements"
field_type {
someip_array {
length_field_size: FOUR
array_type { someip_primitive: FLOAT32 }
}
}
}
AUTOSAR ARXML এবং vsomeip পেলোড এনকোডিং ম্যাপ করুন
বাহ্যিক AUTOSAR ইলেকট্রনিক কন্ট্রোল ইউনিট (ECU) বা COVESA vsomeip মতো SOME/IP স্ট্যাকের সাথে AAOS SDV ইন্টিগ্রেট করার সময়, নিশ্চিত করুন যে আপনার VSIDL type_definition আপনার সিস্টেমের ARXML ( SOMEIP-TRANSFORMATION-PROPS এবং SOMEIP-DATA-PROTOTYPE-TRANSFORMATION-PROPS ) বা vsomeip কনফিগারেশনে সংজ্ঞায়িত ওয়্যার সিরিয়ালাইজেশন প্যারামিটারগুলির সাথে মেলে।
AUTOSAR ARXML এবং vsomeip প্যারামিটার | VSIDL SomeIpType সমতুল্য | ওয়্যার সিরিয়ালাইজেশন এবং পেলোড এনকোডিং নিয়ম |
|---|---|---|
sizeOfStructLengthField ( 0 , 1 , 2 , 4 বাইট) | SomeIpStruct.length_field_size ( ZERO , ONE , TWO , FOUR ) | সিরিয়ালাইজড স্ট্রাক্ট পেলোডের আগে একটি সুস্পষ্ট বাইট-দৈর্ঘ্যের প্রিফিক্স যুক্ত করে। দৈর্ঘ্য প্রিফিক্সবিহীন ফিক্সড-লেআউট স্ট্রাক্টগুলোর জন্য এর ZERO সেট করুন। |
sizeOfArrayLengthField ( 0 , 1 , 2 , 4 বাইট) | SomeIpArray.length_field_size ( ZERO , ONE , TWO , FOUR ) অথবা fixed_length | ডাইনামিক অ্যারের জন্য একটি লেংথ ফিল্ড প্রিফিক্স ( ONE , TWO বা FOUR বাইট) প্রয়োজন হয়, যা সিরিয়ালাইজড অ্যারে এলিমেন্টগুলোর বাইট দৈর্ঘ্য নির্দেশ করে। |
sizeOfStringLengthField এবং এনকোডিং ( UTF-8 , UTF-16LE , UTF-16BE ) | SomeIpString.string_encoding এবং length_field_size অথবা fixed_length | পরিবর্তনশীল-দৈর্ঘ্য এবং নির্দিষ্ট-দৈর্ঘ্যের স্ট্রিংয়ের জন্য AUTOSAR স্ট্রিং সিরিয়ালাইজেশন নিয়ম (বাইট অর্ডার মার্ক এবং নাল-টার্মিনেশন হ্যান্ডলিং সহ) মেনে চলে। |
আদিম মূল টাইপ ( uint8 , uint16 , uint32 , float32 , boolean ) | SomeIpPrimitive ( UINT8 , UINT16 , UINT32 , INT32 , FLOAT32 , BOOL ) | টার্গেট প্রোটোবাফ ফিল্ডের সাথে মিলিয়ে প্রিমিটিভ ভ্যালুগুলোকে নেটওয়ার্ক বাইট অর্ডারে (SOME/IP স্পেসিফিকেশন অনুযায়ী ডিফল্টভাবে বিগ-এন্ডিয়ান) এনকোড করে। |