<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nithyanand</title>
    <description>The latest articles on DEV Community by Nithyanand (@nithyanand).</description>
    <link>https://dev.to/nithyanand</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1225557%2Fcdf73ba0-3cd7-4e6f-ba4d-135e18cc8921.png</url>
      <title>DEV Community: Nithyanand</title>
      <link>https://dev.to/nithyanand</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nithyanand"/>
    <language>en</language>
    <item>
      <title>Application SWC and Its interfaces with RTE</title>
      <dc:creator>Nithyanand</dc:creator>
      <pubDate>Tue, 27 Feb 2024 07:57:26 +0000</pubDate>
      <link>https://dev.to/nithyanand/application-swc-and-its-interfaces-with-rte-dc5</link>
      <guid>https://dev.to/nithyanand/application-swc-and-its-interfaces-with-rte-dc5</guid>
      <description>&lt;p&gt;Hello Readers,&lt;/p&gt;

&lt;p&gt;My name is Nithyanand T, and I work at Luxoft India as a Junior Software Developer. Luxoft has given me several opportunities to work on various projects, which has inspired me to learn the essential processes involved in developing AUTOSAR Modulеs and Add-Ons in Autosar Application SWC and Its interfaces with RTE.&lt;/p&gt;

&lt;p&gt;Introduction&lt;/p&gt;

&lt;p&gt;In AUTOSAR, the application is divided into different SWCs. A SWC or software component is a component that has application logic. In AUTOSAR, functions are encapsulated in SWC. For example the use of electric window in car, for which a separate SWC fulfills this function. SWCs communicate with each other or access lower layer using RTE.&lt;/p&gt;

&lt;p&gt;AUTOSAR has categorize SWCs based on its use into following types:&lt;/p&gt;

&lt;p&gt;Application SWC- It is normal SWC which has only application or part of this.&lt;/p&gt;

&lt;p&gt;Sensor Actuator SWC- This is a special type of SWC that deals with sensors or actuators.&lt;/p&gt;

&lt;p&gt;Parameter SWC- This SWC is used to share calibration parameters to external devices. Unlike an Application SWC or SensorActuator SWC, these SWCs have no internal workings.&lt;/p&gt;

&lt;p&gt;Composition SWC- Composition is nothing but a group of SWCs which is assigned to a single ECU during System Configuration Such grouping helps in abstracting the SWCs and standardizing software development is what AUTOSAR aims for. This grouping is logical that is, no memory is used for such a grouping.&lt;/p&gt;

&lt;p&gt;Service Proxy SWC- This will act as proxy to provide internal services to one or more remote ECUs. Its main use is to share vehicle status information with the entire system.&lt;/p&gt;

&lt;p&gt;Service SWC: It provides services defined by BSW module AUTOSAR.&lt;/p&gt;

&lt;p&gt;ECU Abstraction SWC- This type of SWC allows access to I/O by communicating directly into specific BSW modules Other SWCs cannot be used to access I/O only this one can be used.&lt;/p&gt;

&lt;p&gt;Complex Device Driver SWC- This SWC is used to develop complex device drivers (CDD) for peripherals that are not supported by AUTOSAR or have time-critical functions.&lt;/p&gt;

&lt;p&gt;Nvblock SWC- This SWC is used to communicate with NVRAM or memory.&lt;/p&gt;

&lt;p&gt;Assembly Connector:&lt;/p&gt;

&lt;p&gt;These connectors are used when communication between SWCs is required in a composite SWC. These connectors connect the ports of the SWCs to be connected. These connectors is the next step of port configuration all ports in the SWCs to be connected are connected to the configuration connectors. You will use this while System Configuration.&lt;/p&gt;

&lt;p&gt;Delegation Connector:&lt;/p&gt;

&lt;p&gt;Delegation Connectors are used when some ports of SWCs need to be exposed to outer world of Composition SWC this exposure can be connection with other SWCs using Assembly connectors or connection with BSW. This was because AUTOSAR not allow SWCs to communicate directly outside the compound so delegation connectors are used to communicate outside the compound and communicate data from the internal SWCs to the outside world. Again, you use this term when configuring the system.&lt;/p&gt;

&lt;p&gt;Example for Assembly and Delegation connection:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2rmr8fzg19y44nrpyva9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2rmr8fzg19y44nrpyva9.png" alt="Image description" width="800" height="649"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Runnable Entity:&lt;/p&gt;

&lt;p&gt;The executable is the part of the SWC where the logic of the behavior of the application is written. Runnable is analogous to functions in C. In AUTOSAR, we create Runnable in a SWC during configuration and that runnable or function skeleton is generated in respective source files of SWCs.The name of the Runnable function is the same as what we give to the Runnable function during the definition. We have to write our code in this function/executable file which will then be executed by AUTOSAR OS. This code is an application that SWC must execute. Executables also have variables, and some executables also have trigger points that "call" or run the executable when a certain condition is met. Such conditions can be specified during configuration, the conditions can be: Init Runnable, which is called on initialization, a regular call to a runnable that can be used to send a periodic data, different RTE events based triggering, etc.&lt;/p&gt;

&lt;p&gt;Below is the example of runnable skeleton generated after configuration, this runnable is of Indicator SWC named Runnable1. Such runnable skeletons are generated in SWC.c files.&lt;/p&gt;

&lt;p&gt;/Indicator.c/&lt;br&gt;
void Runnable1(){&lt;br&gt;
/runnable logic code here/&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5w3qp5v4ao14po51ddpl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5w3qp5v4ao14po51ddpl.png" alt="Image description" width="800" height="588"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The image above shows how executables are encapsulated in a SWC and how other SWCs are encapsulated by a composition. Looking at this image, we can understand how well AUTOSAR summarizes and groups things for standardization. As we know, SWC can be reserved for each ECU function, but its behavior or functionality implementation is done using Runnable.&lt;/p&gt;

&lt;p&gt;There are generally three types of runnables:&lt;/p&gt;

&lt;p&gt;Init Executable: This executable is called in ECU Initialization stage.&lt;/p&gt;

&lt;p&gt;Periodic Executable: This executable is used when we need to run this executable from time to time to perform some function regularly.&lt;/p&gt;

&lt;p&gt;Server Executable- This executable is used to implement the client/server port interface server. Executable settings can be configured to run on RTE events, for example:&lt;/p&gt;

&lt;p&gt;Runnable can be configured to run on RTE events such as:&lt;/p&gt;

&lt;p&gt;Time Event- As explained above, this event starts/triggers a special executable when a specified time is reached and executes the logic written in it. This is related to the timer interrupt we use in general embedded programming, where an ISR is called whenever the timer overflows.&lt;/p&gt;

&lt;p&gt;Received Data Event- As the name suggests, this event fires an executable whenever the ports receive data.&lt;/p&gt;

&lt;p&gt;Action Invoked Event:This event is invoked by the client when invoking the server, which can be executed on the client/server port interface.&lt;/p&gt;

&lt;p&gt;State Change Event- When the state of the ECU is changed, an executable file can be started to do some work. For example, the ECU shutdown mode, if the ECU needs to do some work before shutting down, such an event must be connected to an executable that performs the work before shutting down.&lt;/p&gt;

&lt;p&gt;Data Received Error Event: Again, this is self-explanatory. If an error occurs while receiving data, the executable can be called to take action on such an event.&lt;/p&gt;

&lt;p&gt;Data Send Completed event: This event launches an executable file when data is successfully sent, so that actions can be taken after the data transfer is complete.&lt;/p&gt;

&lt;p&gt;Conclusion:&lt;br&gt;
In this article I have talked about Application software components and its interfaces with the help of RTE more about RTE, I will be covering in the upcoming article.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ASWC data types and its port interfaces</title>
      <dc:creator>Nithyanand</dc:creator>
      <pubDate>Tue, 27 Feb 2024 07:32:33 +0000</pubDate>
      <link>https://dev.to/nithyanand/aswc-data-types-and-its-port-interfaces-5gjd</link>
      <guid>https://dev.to/nithyanand/aswc-data-types-and-its-port-interfaces-5gjd</guid>
      <description>&lt;p&gt;Hello Readers,&lt;/p&gt;

&lt;p&gt;My name is Nithyanand T, and I work at Luxoft India as a Junior Software Developer. Luxoft has given me several opportunities to work on various projects, which has inspired me to learn the essential processes involved in developing AUTOSAR Modulеs and Add-Ons in ASWC data types and its port interfaces.&lt;/p&gt;

&lt;p&gt;Data Types in Application Software Component:&lt;/p&gt;

&lt;p&gt;Application Data type- Application Data Type should be defined for all port interfaces that we create for software component type. It is abstract data type (degrees, kms etc). The application data type must be combined with the Implementation data type to generate RTE.&lt;/p&gt;

&lt;p&gt;Implementation Data type: Implementation Data Type exists on the code level. A specific data type used in C (Boolean, uint8, etc.).The Implementation data type is related to the base data type.&lt;/p&gt;

&lt;p&gt;Base data Type: The base type is not required if the implementation type is a known platform type.&lt;/p&gt;

&lt;p&gt;If you have a specific monitor temperature for application software, an application data type temperature is created and can be mapped to an application data type (eg unitt8).&lt;/p&gt;

&lt;p&gt;TYPES OF APPLICATION INTERFACES IN AUTOSAR&lt;/p&gt;

&lt;p&gt;AUTOSAR supports six types of application port interfaces They are.&lt;/p&gt;

&lt;p&gt;• Sender Receiver port Interface(ASWC)&lt;br&gt;
• Client Server Port Interface&lt;br&gt;
• Calibration Port Interface&lt;br&gt;
• Mode Port Interface&lt;br&gt;
• NV Data Port Interface&lt;br&gt;
• Trigger Interface&lt;/p&gt;

&lt;p&gt;Port interface: Each software port (all types of software - application or BSW) is connected to a port interface. The user interface of a port describes information (such as structure) or functionality that a software component provides or requests through that port. A port interface describes the data provided or required by a software component port.&lt;/p&gt;

&lt;p&gt;Sender-Receiver Port Interface: A sender-receiver (S/R) interface is a port interface used for communication between a transmitter and a receiver. If you want to exchange data (eg variables, structure) between software components, you use the sender receiver interface.&lt;/p&gt;

&lt;p&gt;Client Server Port Interface: Client Server Interface (C/S) is equivalent to Sender-Receiver interface. Instead of defining the data to be passed between software components, an interface defines a set of operations that can be invoked based on a client-server model. Here, the client initiates communication and requests the server to provide a service.The starting direction of the message can be used to identify whether the AUTOSAR software component is a client or a server.&lt;/p&gt;

&lt;p&gt;Calibration Port Interface: The calibration port user interface allows software components to access either standard data, fixed data, or calibration data. It should be noted that the compatibility rules apply depending on the usage type (ie fixed, permanent or equivalent). For example, a calibration port interface that uses a fixed deployment policy must not connect to a parameter SW component port if the provider uses a variable data implementation (i.e. standard).&lt;/p&gt;

&lt;p&gt;NVData Port Interface: It provides element-level access (read-only or read/write) to persistent data. If we want to access the NV BLOCK through NVRAM or from an application software or NVM software component, we use the NVData port interface.&lt;/p&gt;

&lt;p&gt;Mode Port Interface: The state change interface is used to inform a software component about the state of the application. Mode Management (Communication Manager, BSW Manager) provides modes that allow mode users to customize actions according to modes or synchronize functions with mode switches. Software components access state and request state changes through the mode port.&lt;/p&gt;

&lt;p&gt;Trigger Interface: Trigger interface allows software components to trigger the execution of software components. The purpose of the trigger interface is to enable fast response times for a trigger that may occur randomly or with a variable cycle time. Example: Start based on crankshaft and camshaft position.&lt;/p&gt;

&lt;p&gt;SENDER RECEIVER COMMUNICATION IN AUTOSAR&lt;/p&gt;

&lt;p&gt;Sender-receiver communication enables the exchange of data/information, where the sender shares information with one or more recipients. We can use the Sender Receiver interface to exchange data, exchange events and status groups.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8uykbxpn7lrgn4tg470.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8uykbxpn7lrgn4tg470.png" alt="Image description" width="625" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Sender-receiver interface associated with these ports consists of data elements that define the information sent by the transmitter and received by the receivers. The data type can be something very simple (eg "integer") or a complex (perhaps large) data type (e.g. an array or a string).&lt;/p&gt;

&lt;p&gt;SenderReceiverPortInterface is a traditional interface used to send and receive signals for cars. It integrates well with buses like CAN and LIN (which are mainly signal-based buses).&lt;/p&gt;

&lt;p&gt;The RTE function prefixes are:&lt;/p&gt;

&lt;p&gt;Rte_Write (P-Port, Non-Queued)&lt;br&gt;
Rte_Read (R-Port, Non-Queued)&lt;br&gt;
Rte_Send (P-Port, Queued)&lt;br&gt;
Rte_Receive (R-Port, Queued)&lt;/p&gt;

&lt;p&gt;ClientServerPortInterface:&lt;/p&gt;

&lt;p&gt;Software components use ClientServer ports when they request services in BSW (typically through service mapping) or another software component. A function call can be set to be either synchronous or asynchronous via configuration.&lt;/p&gt;

&lt;p&gt;The RTE function prefixes are:&lt;/p&gt;

&lt;p&gt;Rte_Call (R-Port)&lt;br&gt;
For server ports (or P-ports), the user can choose any function name as long as the RTE knows it at generation time.&lt;/p&gt;

&lt;p&gt;ParameterPortInterface:&lt;/p&gt;

&lt;p&gt;Parameter ports are used for parameter data, sometimes called calibration data. These are usually read-only values ​​that control the behavior of software components.&lt;/p&gt;

&lt;p&gt;The RTE function prefixes are:&lt;/p&gt;

&lt;p&gt;Rte_Prm (R-Port)&lt;/p&gt;

&lt;p&gt;ModeSwitchPortInterface:&lt;/p&gt;

&lt;p&gt;Mode ports are used to respond to ECU status changes.&lt;/p&gt;

&lt;p&gt;The RTE function prefixes are:&lt;/p&gt;

&lt;p&gt;Rte_Mode (R-Port)&lt;br&gt;
Rte_Switch (P-Port)&lt;/p&gt;

&lt;p&gt;NvDataPortInterface:&lt;/p&gt;

&lt;p&gt;The non volatile data port interface is only used by the NvBlock Software Component.&lt;/p&gt;

&lt;p&gt;Conclusion:&lt;br&gt;
AUTOSAR affords a complete framework for automotive software. It defines special facts kinds and APIs to make certain standardized communique and functionality. The distinction among utility data types, implementation data types, and middle data types lets in for abstraction and versatility in software improvement. Six utility interface kinds, such as transmitter-receiver, purchaser-server, calibration, fame, NV records and trigger interfaces, meet the various communication and capability requirements of the car ecosystem. This dependent approach, with unique RTE characteristic prefixes for every interface kind, allows green and standardized software development for automotive programs.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Exploring Unit test and Google test</title>
      <dc:creator>Nithyanand</dc:creator>
      <pubDate>Mon, 26 Feb 2024 05:43:37 +0000</pubDate>
      <link>https://dev.to/nithyanand/exploring-unit-test-and-google-test-3iec</link>
      <guid>https://dev.to/nithyanand/exploring-unit-test-and-google-test-3iec</guid>
      <description>&lt;p&gt;Hi Readers, I am Nithyanand, working as Junior software engineer at Luxoft. In this article, I have tried to give a Introduction to Unit Testing and Google Testing Framework.&lt;/p&gt;

&lt;p&gt;Testing:&lt;/p&gt;

&lt;p&gt;Testing is the process of verifying the software performs to the specifications.&lt;br&gt;
The developer will execute the program with selected subset of all the possible input, and compares the actual output with the expected output.&lt;br&gt;
Benefits of testing include&lt;/p&gt;

&lt;p&gt;Preventing bugs&lt;/p&gt;

&lt;p&gt;Reducing development costs and improving performance so on..&lt;/p&gt;

&lt;p&gt;What is Unit Testing?&lt;/p&gt;

&lt;p&gt;Unit testing is a type of software testing where individual units or components of a software are tested. The purpose is to validate that each unit of the software code performs as expected. Unit Testing is done during the development (coding phase) of an application by the developers. Unit Tests isolate a section of code and verify its correctness. A unit may be an individual function, method, procedure, module, or object.&lt;br&gt;
In SDLC, STLC, V Model, Unit testing is first level of testing done before integration testing. Unit testing is a White Box testing technique that is usually performed by the developer.&lt;/p&gt;

&lt;p&gt;Why unit testing?&lt;/p&gt;

&lt;p&gt;Unit Testing is important because software developers sometimes try saving time doing minimal unit testing and this is myth because inappropriate unit testing leads to high cost Defect fixing during System Testing, Integration Testing and even Beta Testing after application is built. If proper unit testing is done in early development, then it saves time and money in the end.&lt;/p&gt;

&lt;p&gt;Obviously tests improve the quality of your code, it helps the developers to understand the testing code base and enables them to make changes quickly.&lt;/p&gt;

&lt;p&gt;Unit tests help with code re-use.&lt;/p&gt;

&lt;p&gt;Give developers confidence when adding behavior or making fixes.&lt;/p&gt;

&lt;p&gt;How to do Unit Testing?&lt;/p&gt;

&lt;p&gt;In order to do Unit Testing, developers write a section of code to test a specific function in software application. Developers can also isolate this function to test more rigorously which reveals unnecessary dependencies between function being tested and other units so the dependencies can be eliminated. Developers generally use Unit Test framework to develop automated test cases for unit testing.&lt;br&gt;
The Unit Testing simply stated, they are software tools to support writing and running unit tests, including a foundation on which to build tests and the functionality to execute the tests and report their results.&lt;/p&gt;

&lt;p&gt;What is Google testing?&lt;/p&gt;

&lt;p&gt;It is a test framework, The google test is a library for writing the unit test for C++ or Google test is a one type of software tool for writing as well as running the unit test.&lt;/p&gt;

&lt;p&gt;In google testing the code is tested line-by-line.&lt;/p&gt;

&lt;p&gt;It is based on xUnit architecture which is a set of Frameworks for programming and automated execution of test cases.&lt;/p&gt;

&lt;p&gt;Why Google testing?&lt;/p&gt;

&lt;p&gt;Google Test helps us to write better C++ tests.&lt;/p&gt;

&lt;p&gt;Independent and Repeatable: Google test isolates the tests by running each of them on a different object.&lt;/p&gt;

&lt;p&gt;Portable and Reusable: Google test works on different Oses (Linux, Windows, or a Mac), with different compilers.&lt;/p&gt;

&lt;p&gt;When tests fail, it will provide much information about the problem, so it will be easy to solve the issues.&lt;/p&gt;

&lt;p&gt;Basic concepts and Assertions in Google test :&lt;br&gt;
Assertions are statements that check whether a condition is true. An assertion's result can be&lt;/p&gt;

&lt;p&gt;Success&lt;br&gt;
2.Nonfatal failure, or fatal failure&lt;/p&gt;

&lt;p&gt;Note :- If the fatal failure occurs, it will abort the current function else the program continues normally.&lt;/p&gt;

&lt;p&gt;Assertions in tests used to verify the behavior of the tested code. If a test has a failed assertion, then it fails else it succeeds.&lt;/p&gt;

&lt;p&gt;These assertions do basic true/false condition testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyjfu9fc0cancz4rqjan4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyjfu9fc0cancz4rqjan4.png" alt="Image description" width="800" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;List of rational operator for Google testing :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpv81hd2k1whrxvivw5go.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpv81hd2k1whrxvivw5go.png" alt="Image description" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Simple tests&lt;/p&gt;

&lt;p&gt;To write test cases:&lt;/p&gt;

&lt;p&gt;The test file shoulde be having the #include "gtest/gtest.h"&lt;/p&gt;

&lt;p&gt;Use the macro TEST_F() for defining and naming a test function, These are ordinary C++ functions that don't return a value.&lt;/p&gt;

&lt;p&gt;We can use various Google Test assertions to check values of the tests.&lt;/p&gt;

&lt;p&gt;Test results will be based on assertions, if any assertions in the test fails Then the entire test fails else it succeeds.&lt;/p&gt;

&lt;p&gt;Note :- Can write many assertions in single test case.&lt;/p&gt;

&lt;p&gt;Example:-&lt;/p&gt;

&lt;p&gt;include "gtest/gtest.h"&lt;br&gt;
class SumTest: public ::testing::Test&lt;br&gt;
{&lt;br&gt;
public:&lt;br&gt;
SumTest() {};&lt;br&gt;
virtual ~SumTest() {};&lt;br&gt;
/// SetUp will be called before each test that uses this fixture.&lt;br&gt;
virtual void SetUp() {};&lt;br&gt;
/// Will be called after each test if the test uses this fixture.&lt;br&gt;
virtual void TearDown() {};&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;// Test of sum.&lt;br&gt;
TEST_F(SumTest, Test_T1) {&lt;br&gt;
EXPECT_EQ(2, sum(1 + 1));&lt;br&gt;
EXPECT_LT(3, sum(2 + 2));&lt;br&gt;
EXPECT_GT(4, sum(3 + 0);&lt;br&gt;
EXPECT_NQ(5, sum(8 + 1);&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;int main(int argc, char **argv) {&lt;br&gt;
::testing::InitGoogleTest(&amp;amp;argc, argv);&lt;br&gt;
return RUN_ALL_TESTS();&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Google test environment:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F988eozx66o1vdyr7v0ha.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F988eozx66o1vdyr7v0ha.png" alt="Image description" width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Actual testcases:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy2wb2urd4eylj0ynxdgi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy2wb2urd4eylj0ynxdgi.png" alt="Image description" width="739" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw8wlee9538z846cipx02.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw8wlee9538z846cipx02.png" alt="Image description" width="711" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Conclusion:&lt;/p&gt;

&lt;p&gt;In the article i explained basics of the unit testing and google testing. Getting started with Google Test is pretty easy.It has more features than other tests.Google test can be used to prevent the bugs at the intial stage, which will reduce the more debuging time and cost in the end.&lt;br&gt;
This article just scratches the surface of the Google C++ Testing Framework. Detailed documentation about the framework is available from the Google site.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Exploring Emergency Brake Assist in Advanced Driver Assistance Systems (ADAS)</title>
      <dc:creator>Nithyanand</dc:creator>
      <pubDate>Mon, 26 Feb 2024 05:35:05 +0000</pubDate>
      <link>https://dev.to/nithyanand/exploring-emergency-brake-assist-in-advanced-driver-assistance-systems-adas-32ek</link>
      <guid>https://dev.to/nithyanand/exploring-emergency-brake-assist-in-advanced-driver-assistance-systems-adas-32ek</guid>
      <description>&lt;p&gt;Hello readers. My name is Nithyanand and I am a Junior Software Developer at Luxoft India. I have been fortunate to work on adaptive projects at Luxoft which has helped me gain valuable experience in Adaptive Autosar and inspired me to discuss about Emergency Brake Assist (EBA).&lt;/p&gt;

&lt;p&gt;Introduction:&lt;br&gt;
In the ever-evolving panorama of automotive generation Advanced Driver Assistance Systems (ADAS) play a pivotal function in enhancing automobile safety. One of the essential functions inside ADAS is Emergency Brake Assist (EBA) a machine designed to offer a further layer of safety by supporting drivers throughout emergency braking situations. In this newsletter we will delve into the operating standards of Emergency Brake Assist exploring its additives and how they make contributions to making our trips more secure.&lt;/p&gt;

&lt;p&gt;Working of Emergency Brake Assist:&lt;br&gt;
Emergency Brake Assist, also referred to as EBA is a safety feature that operates in the course of unexpected and excessive braking scenarios. Its number one purpose is to support drivers in applying the most braking pressure in emergency conditions thereby lowering the risk of collisions. The gadget works seamlessly with the automobile's existing braking gadget stepping in while it detects the driving force beginning speedy and forceful braking.&lt;/p&gt;

&lt;p&gt;Sensors:&lt;br&gt;
The core of Emergency Brake Assist lies in its capacity to experience and analyze the environment in actual time. Modern motors prepared with EBA rely on an array of sensors to gather data about the environment. These sensors encompass radar, cameras and lidar working together to screen the road, visitors and capability barriers.&lt;/p&gt;

&lt;p&gt;Electronic Control Unit (ECU):&lt;br&gt;
The Electronic Control Unit serves as the brain of the Emergency Brake Assist device. It sends the data acquired from the diverse sensors and determines whether the state of affairs demands emergency braking intervention. The ECU is programmed to understand patterns indicative of capacity collisions such as surprising deceleration or the proximity of obstacles.&lt;/p&gt;

&lt;p&gt;Brake Actuators:&lt;br&gt;
When the ECU identifies an essential state of affairs it sends a sign to the brake actuators. These actuators are responsible for making use of extra force to the braking system augmenting the motive force's entry. The brake actuators paint in conjunction with the traditional braking components, improving the general braking overall performance during emergencies.&lt;/p&gt;

&lt;p&gt;Anti-lock Braking System (ABS):&lt;br&gt;
Emergency Brake Assist regularly collaborates with the Anti-lock Braking System typically referred to as ABS. ABS prevents wheel lockup at some stage in hard braking keeping steering manipulated and enhancing standard automobile stability. EBA makes use of ABS to modulate brake pressure and optimize the braking pressure implemented to every wheel ensuring powerful deceleration.&lt;/p&gt;

&lt;p&gt;Hydraulic Braking System:&lt;br&gt;
The hydraulic braking machine is an essential factor that interprets the braking force generated by the driving force or the Emergency Brake Assist machine into mechanical motion. EBA influences this device by adjusting brake strain thereby assisting in attaining the most feasible deceleration without compromising automobile stability.&lt;/p&gt;

&lt;p&gt;How Emergency Brake Assist Responds:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fisnjmm40w48jxawrh5i8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fisnjmm40w48jxawrh5i8.png" alt="Image description" width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Emergency Brake Assist operates in a coordinated way responding to the driving force's actions and the records accumulated from the environment. Here is a step by step breakdown of the way EBA functions for the duration of an emergency braking event.&lt;/p&gt;

&lt;p&gt;Driver Initiation:&lt;br&gt;
When the driver applies sudden and forceful stress at the brake pedal indicative of an emergency state of affairs the EBA gadget is brought into motion.&lt;/p&gt;

&lt;p&gt;Sensor Data Analysis:&lt;br&gt;
Simultaneously, the sensors in the vehicle collect and transmit statistics to the Electronic Control Unit. These statistics consist of facts approximately the rate of the vehicle, the proximity of limitations and the general using conditions.&lt;/p&gt;

&lt;p&gt;Emergency Recognition:&lt;/p&gt;

&lt;p&gt;The ECU analyzes the incoming information and determines whether or not the scenario qualifies as an emergency. If it identifies a capacity collision it proceeds to prompt the Emergency Brake Assist device.&lt;/p&gt;

&lt;p&gt;Brake Force Augmentation:&lt;/p&gt;

&lt;p&gt;Upon activation the ECU communicates with the brake actuators to increase the braking pressure. This augmentation is designed to complement the use of pressure input making sure that the car slows down rapidly and successfully.&lt;/p&gt;

&lt;p&gt;ABS Integration:&lt;br&gt;
Emergency Brake Assist collaborates with the Anti-lock Braking System to keep the greatest wheel rotation and save you wheel lockup. This integration complements the car's capability to influence and hold stability all through emergency braking.&lt;/p&gt;

&lt;p&gt;Deceleration and Collision Avoidance:&lt;br&gt;
With the combined efforts of the motive force and the Emergency Brake Assist gadget, the vehicle undergoes huge deceleration, potentially fending off a collision or minimizing its severity.&lt;/p&gt;

&lt;p&gt;Benefits of Emergency Brake Assist:&lt;br&gt;
The integration of Emergency Brake Assist into cutting-edge automobiles brings several blessings to the table, contributing to typical avenue protection:&lt;/p&gt;

&lt;p&gt;Collision Prevention:&lt;br&gt;
By supplying extra braking pressure at some stage in emergencies, EBA facilitates the prevention of collisions or, at least, reduces their impact severity.&lt;/p&gt;

&lt;p&gt;Improved Reaction Time:&lt;br&gt;
Emergency Brake Assist responds unexpectedly to critical occasions, supplementing the driver's reaction time and beginning braking moves faster than human reflexes on my own.&lt;/p&gt;

&lt;p&gt;Enhanced Driver Confidence:&lt;br&gt;
Knowing that there's an additional layer of help at some point in emergencies can boost driver self-assurance, specifically in high-stress situations.&lt;/p&gt;

&lt;p&gt;Reduced Collision Severity:&lt;br&gt;
Even in scenarios where a collision is unavoidable the fast deceleration facilitated by way of Emergency Brake Assist can considerably reduce the severity of the impact.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmjcjgb49to71l8pd63oo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmjcjgb49to71l8pd63oo.png" alt="Image description" width="474" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Conclusion:&lt;br&gt;
Emergency Brake Assist stands as a testimony to the continuous efforts in car generation to decorate protection on our roads. By seamlessly integrating with existing braking systems and leveraging superior sensor technology EBA affords a further layer of protection for the duration of critical moments. As this technology becomes extra significant it can make a big impact on reducing the frequency and severity of collisions making our trips more secure for every person on the road.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>In-Car Connectivity: AVB (Audio Video Bridging) in Automotive Industry</title>
      <dc:creator>Nithyanand</dc:creator>
      <pubDate>Mon, 12 Feb 2024 06:35:51 +0000</pubDate>
      <link>https://dev.to/nithyanand/in-car-connectivity-avb-audio-video-bridging-in-automotive-industry-48f5</link>
      <guid>https://dev.to/nithyanand/in-car-connectivity-avb-audio-video-bridging-in-automotive-industry-48f5</guid>
      <description>&lt;p&gt;Hello readers. My name is Nithyanand, I am a Junior Software Developer at Luxoft India. I have been fortunate to work on adaptive projects at Luxoft which has helped me gain valuable experience in Adaptive Autosar and inspired me to discuss&lt;br&gt;
about Audio Video bridging (AVB).&lt;br&gt;
Introduction:&lt;br&gt;
In the ever evolving panorama of automobile era the pursuit of an immersive and connected entertainment has come to be a focus for manufacturers. The integration of superior multimedia structures, which include first rate audio and video has grown to be a key differentiator in current automobiles. One of the technologies playing a pivotal function in attaining seamless audio and video conversation within automobiles is Audio Video Bridging (AVB). This article delves into the intricacies of AVB and its effect on the automobile industry. AVB uses protocols like Broad Reach IEEE instead of standard ethernet to communicate or send data between ECUs or between ECU and host PC. Broad Reach uses lesser cables and less complicated circuits. AVB also sends higher-resolution data via Broad Reach.&lt;/p&gt;

&lt;p&gt;Understanding Audio Video Bridging (AVB):&lt;br&gt;
Audio Video Bridging regularly referred to as AVB, is a hard and fast of requirements evolved to beautify the shipping of synchronized audio and video streams over Ethernet networks. Initially designed to satisfy the demands of the expert audio and video enterprise AVB has observed applications in various sectors consisting of automobile.&lt;/p&gt;

&lt;p&gt;AVB leverages IEEE standards especially IEEE 802.1Qat, 802.1Qav, and 802.1AS to make sure specific synchronization and low-latency communication over Ethernet networks. This makes it an excellent solution for in-automobile verbal exchange structures where real-time delivery of audio and video facts is vital for a seamless person to revel in.&lt;/p&gt;

&lt;p&gt;Key Components of AVB inside the Automotive Context:&lt;br&gt;
Synchronization (802.1AS): The cornerstone of AVB is specific synchronization, carried out via IEEE 802.1AS, which presents a commonplace clock for all gadgets within the community. In automobile placing, synchronization is important for ensuring that various multimedia additives, consisting of audio systems, shows, and microphones, function in best harmony.&lt;/p&gt;

&lt;p&gt;Traffic Shaping (802.1Qav): AVB employs IEEE 802.1Qav to manipulate the drift of audio and video statistics, preventing network congestion and making sure that crucial streams get hold of the vital bandwidth. In the automobile context, this guarantees that infotainment systems, navigation, and other multimedia packages are characteristic with out interruptions, even in bandwidth-intensive situations.&lt;/p&gt;

&lt;p&gt;Stream Reservation (802.1Qat): Stream reservation, facilitated by way of IEEE 802.1Qat, permits gadgets to reserve bandwidth for precise audio or video streams. This ensures a committed path for crucial information, lowering the threat of packet loss or delays. In an automobile environment, this is instrumental in stopping disruptions in actual-time programs like fingers-loose calling and navigation steering.&lt;/p&gt;

&lt;p&gt;Applications in the Automotive Industry:&lt;br&gt;
Infotainment Systems: AVB notably complements the performance of in-vehicle infotainment systems High-fidelity audio excessive definition video playback and interactive presentations are seamlessly integrated providing passengers with an immersive and enjoyable riding experience The synchronize talents in AVB make sure that audio and video factors are flawlessly aligned, getting rid of any perceptible delays.&lt;/p&gt;

&lt;p&gt;Advanced Driver Assistance Systems (ADAS): The real-time necessities of ADAS demand a dependable and low-latency communication community. AVB's potential to prioritize vital records streams makes it a super answer for ADAS applications, making sure that facts from sensors and cameras are communicated right now, contributing to more desirable protection capabilities inclusive of collision avoidance and lane departure warnings.&lt;/p&gt;

&lt;p&gt;Voice Recognition and Control: AVB's low-latency communique is instrumental in facilitating natural and responsive voice recognition systems inside vehicles. Whether it's controlling in-automobile capabilities, making calls, or navigating, AVB guarantees that voice commands are processed hastily and appropriately.&lt;/p&gt;

&lt;p&gt;Telematics and Connectivity: AVB plays a crucial position in allowing seamless connectivity within vehicles. From in-automobile conversation among various components to outside connectivity for software program updates and cloud-based offerings, AVB ensures a robust and dependable community infrastructure.&lt;/p&gt;

&lt;p&gt;Challenges and Future Prospects:&lt;br&gt;
While AVB brings sizable advantages to the car enterprise, demanding situations which includes vast adoption, interoperability, and fee implications need to be addressed. As the industry maintains to embrace the blessings of AVB, standardization efforts and collaborative initiatives will play a key function in overcoming these demanding situations.&lt;/p&gt;

&lt;p&gt;Looking in advance, the combination of 5G technology with AVB holds promise for even extra advanced and related automobiles. The combination of excessive-pace wireless connectivity and AVB's real-time talents opens doorways to innovative programs, inclusive of augmented fact displays, immersive amusement experiences, and greater independent riding features.&lt;/p&gt;

&lt;p&gt;Conclusion:&lt;br&gt;
Audio Video Bridging stands as an evolving era inside the automotive zone revolutionizing in-automobile connectivity and multimedia stories. As vehicles evolve into shrewd, linked spaces AVB's position in ensuring seamless, low-latency conversation turns into increasingly important. The integration of AVB inside the automotive industry now not only enhances ride enhancement but also contributes to the development of safer, more green, and technologically advanced motors. In the projects I have worked in, AVB was used to stream the data from cameras and display it onto the laptop screen. Hence, can be used to debug the output of the cameras.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Navigating the future of Roads: A brief intro Of Adaptive Cruise Control Technology</title>
      <dc:creator>Nithyanand</dc:creator>
      <pubDate>Thu, 18 Jan 2024 02:28:03 +0000</pubDate>
      <link>https://dev.to/nithyanand/navigating-the-future-of-roads-a-brief-intro-into-adaptive-cruise-control-technology-eco</link>
      <guid>https://dev.to/nithyanand/navigating-the-future-of-roads-a-brief-intro-into-adaptive-cruise-control-technology-eco</guid>
      <description>&lt;p&gt;My name is Nithyanand T and I am working as Software Engineer at Luxoft India. Luxoft has given me several opportunities to work on various projects, which has inspired me to learn the essential processes involved in ACC Technology.&lt;/p&gt;

&lt;p&gt;Introduction:&lt;br&gt;
In the swiftly evolving panorama of car technology one innovation stands out for its potential to convert the using enjoy and that is Adaptive Cruise Control(ACC). This sophisticated device is going beyond traditional cruise manage by way of incorporating advanced sensors and algorithms therefore enabling automobiles to autonomously modify their pace and preserve a secure following distance from the vehicle in advance. In this text we can delve into the working concepts of Adaptive Cruise Control discover the intricacies of its capability and shed light on the sensors that make all of it viable.&lt;/p&gt;

&lt;p&gt;How Adaptive Cruise Control Works:&lt;br&gt;
Adaptive Cruise Control operates on the fundamental principle of sensor-based totally notion and intelligent decision-making. Unlike traditional cruise control which continues a steady pace set with the aid of the driver ACC takes into account the speed of automobile in the front and dynamically adjusts the velocity of the host automobile to keep a safe following distance.&lt;/p&gt;

&lt;p&gt;Sensor Array:&lt;br&gt;
ACC generally use a number of sensors to acquire real-time facts approximately the vehicles surroundings. The primary sensors used in ACC are radar, lidar, cameras and every now and then ultrasonic sensors.&lt;/p&gt;

&lt;p&gt;Long-Range Radar:&lt;br&gt;
The long-variety radar is a vital factor of ACC responsible for detecting objects at a huge distance. This radar continuously scans the road ahead measuring the gap to the car in the front and calculating its velocity. The records acquired from the lengthy-variety radar bureaucracy the idea for the system decision-making procedure.&lt;/p&gt;

&lt;p&gt;Short-Range Radar or Lidar:&lt;br&gt;
Short-range radar or lidar sensors are employed to provide specified records approximately the immediately region of the car. These sensors perform at a shorter variety however provide higher decision allowing the ACC gadget to make great changes to the car velocity in response to changing site visitors conditions.&lt;/p&gt;

&lt;p&gt;Camera Systems:&lt;br&gt;
Advanced camera systems seize visible records,identifying lane markings,street signs and symptoms and the placement of other motors. This visual facts enhances the information acquired from radar and lidar enhancing the understanding of the using environment for the gadget.&lt;/p&gt;

&lt;p&gt;Control Algorithms:&lt;br&gt;
The heart of the ACC system lies in its manipulate algorithms. These algorithms system the data from various sensors investigate the relative pace and distance to the car in front and decide the most efficient speed for the host automobile. The algorithms also do not forget factors consisting of acceleration,deceleration and the drivers input to ensure a easy and secure driving enjoy.&lt;/p&gt;

&lt;p&gt;Actuators:&lt;br&gt;
Once the manage algorithms calculate the desired changes actuators come into play. These can encompass digital throttle control,brake-by-wire structures and engine management structures. The ACC system communicates with these actuators to modulate the motors velocity and preserve a safe following distance.&lt;/p&gt;

&lt;p&gt;Driver Override and Intervention:&lt;br&gt;
While ACC structures are designed to function autonomously driver override and intervention are crucial safety functions. Drivers can typically regulate the subsequent distance set the favored velocity and if needed take manipulate of the car at any time.&lt;/p&gt;

&lt;p&gt;Sensors in Adaptive Cruise Control:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aMTKIuzZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xksqxprhf64ipz9wcikq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aMTKIuzZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xksqxprhf64ipz9wcikq.png" alt="Image description" width="530" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now then let's take a more in-depth look at the sensors that make Adaptive Cruise Control a truth:&lt;/p&gt;

&lt;p&gt;Radar Sensors: These sensors use radio waves to come across objects in the cars course. Long-range radar sensors are regularly positioned inside the returned of the cars frame to offer information approximately distant items even as quick-range radar sensors are commonly positioned on the the front and rear of the automobile to enhance the device's precision in near-variety situations.&lt;/p&gt;

&lt;p&gt;Lidar Sensors: These sensors use laser beams to create a three-d map of the automobile's environment. Lidar is effective in low-light situations and is able to supplying excessive decision statistics making. It a treasured addition to the sensor suite.&lt;/p&gt;

&lt;p&gt;Camera Systems: Cameras capture visible records along with lane markings, avenue signs and the area and motion of other motors. These visuals are critical for the ACC device to interpret and respond to the driving surroundings correctly.&lt;/p&gt;

&lt;p&gt;Ultrasonic Sensors: Ultrasonic sensors are normally used for parking assist and low-pace maneuvering. While now not the number one sensors for ACC they're able to contribute greater information for enhanced situational interest specifically in tight regions.&lt;/p&gt;

&lt;p&gt;Benefits of Adaptive Cruise Control:&lt;br&gt;
Safety: ACC complements safety via preserving a secure following distance and adjusting the auto's pace to healthy the float of website traffic. The machine can react more short than a human purpose pressure in sure situations lowering the risk of collisions.&lt;/p&gt;

&lt;p&gt;Comfort: ACC improves the riding revel in thru reducing the want for regular pace adjustments. The device can deal with the nuances of site visitors waft supplying a greater snug and strain-loose adventure.&lt;/p&gt;

&lt;p&gt;Efficiency: By optimizing tempo and reducing unnecessary acceleration and deceleration ACC contributes to gasoline performance. This is specially beneficial in prevent-and-flow website traffic scenarios.&lt;/p&gt;

&lt;p&gt;Traffic Flow Optimization: ACC is designed to carry out seamlessly in congested site visitors supporting to optimize the general go with the waft and decrease visitors jams.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Conclusion&lt;/em&gt;:&lt;br&gt;
So proper here's the conclusion, Adaptive Cruise Control represents a exceptional jump ahead in vehicle generation blending sensor fusion and smart algorithms to create a safer and further cushty riding experience. As enhancements retain we are able to anticipate ACC systems to adapt and include new sensors and features that in addition enhance their skills. With the promise of extended protection, efficiency and motive force comfort Adaptive Cruise Control is in reality a era to observe because it maintains to shape the destiny of transportation.&lt;/p&gt;

&lt;p&gt;Thanks for reading.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Yocto Project</title>
      <dc:creator>Nithyanand</dc:creator>
      <pubDate>Fri, 05 Jan 2024 04:44:04 +0000</pubDate>
      <link>https://dev.to/nithyanand/yocto-project-45a6</link>
      <guid>https://dev.to/nithyanand/yocto-project-45a6</guid>
      <description>&lt;p&gt;My name is Nithyanand T and I am working as Software Engineer at Luxoft India. Luxoft has given me several opportunities to work on various projects, which has inspired me to learn the essential processes involved in yocto Project.&lt;/p&gt;

&lt;p&gt;Yocto Project&lt;br&gt;
The Yocto Project is an open supply assignment especially for the embedded area. Whereas other Linux distributions are constructed for enterprise servers and workstations and then (probably) tailored down for embedded use cases, the Yocto Project permits the build of customized distributions for embedded gadgets. In a disparate marketplace with heterogeneous necessities, the challenge seeks to define a commonplace floor for embedded development, impartial of the underlying structure of the hardware.&lt;/p&gt;

&lt;p&gt;After more than a decade, the Yocto Project has advanced to grow to be one in each of the most important agencies below the Linux Foundation umbrella of collaborative open source projects. It gathers the top names in the industry, applies super practices for open supply, and defines the attributes of embedded OS development and product lifecycles with the gear it offers.&lt;/p&gt;

&lt;p&gt;What the Yocto Project Provides&lt;br&gt;
The industry needed a commonplace construct machine&lt;br&gt;
and middle technology&lt;br&gt;
• Bitbake and OpenEmbedded build system&lt;br&gt;
• The benefit of doing so is:&lt;br&gt;
• Designed for the long time&lt;br&gt;
• Designed for embedded&lt;br&gt;
• Transparent Upstream adjustments&lt;br&gt;
• Vibrant Developer Community&lt;br&gt;
• Less time spent on matters which don’t make&lt;br&gt;
money (construct machine, middle Linux additives)&lt;br&gt;
• More time spent on things which do make cash&lt;br&gt;
(app development, product development, …)&lt;/p&gt;

&lt;p&gt;Developer Care because of-&lt;br&gt;
• Build a entire Linux device –from source– in&lt;br&gt;
approximately an hour (approximately 90 mins with X)&lt;br&gt;
• Multiple cores (i.E. Quad i7)&lt;br&gt;
• Lots of RAM (i.E. 16 GB of ram or greater)&lt;br&gt;
• Fast disk (RAID, SSD, and so on…)&lt;br&gt;
• Start with a confirmed series of software&lt;br&gt;
(toolchain, kernel, consumer area)&lt;br&gt;
• Blueprints to get you commenced quick and that you could&lt;br&gt;
customise on your personal wishes&lt;br&gt;
• We distinguish app developers from device&lt;br&gt;
builders and we help both&lt;br&gt;
• Access to a extraordinary series of app developer equipment&lt;br&gt;
(performance, debug, power evaluation, Eclipse)&lt;/p&gt;

&lt;p&gt;Yocto Project Provides Embedded Tools, Best&lt;br&gt;
Practices, and Reference Implementation&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--duqJK5----/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.S3.Amazonaws.Com/uploads/articles/v076vqv7tsa5u69lxerl.Png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--duqJK5----/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.S3.Amazonaws.Com/uploads/articles/v076vqv7tsa5u69lxerl.Png" alt="Image description" width="715" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Yocto Project Important terms&lt;br&gt;
• Poky – Yocto Project Reference Build System&lt;br&gt;
• BitBake – Build Engine&lt;br&gt;
• Hob – Graphical User Interface for BitBake&lt;br&gt;
• OpenEmbedded Core – Layers of Recipes and Classes&lt;br&gt;
• Application Development Toolkit (ADT) – Development environment&lt;br&gt;
for user-space applications to run on OS stacks built by using Poky&lt;br&gt;
• EGLIBC – Embedded variation of the GNU C Library&lt;br&gt;
• Matchbox – X Windows-based totally open source graphical UI for&lt;br&gt;
embedded devices&lt;br&gt;
• Autobuilder – Automation for Yocto Project build checks and QA&lt;br&gt;
• Build Appliance – Virtual device photograph to attempt out the Yocto Project&lt;br&gt;
and Poky&lt;br&gt;
• Pseudo – System administrator simulation environment&lt;br&gt;
• Swabber – Host leakage detection tool&lt;/p&gt;

&lt;p&gt;Difference Between Yocto Project Poky and OpenEmbedded&lt;br&gt;
Poky is the reference operating machine distribution constructed with Yocto Project gear, and OpenEmbedded is a construct framework of recipes and applications. OpenEmbedded helps many hardware architectures with pass-compilation infrastructure. The network makes use of it to validate Yocto Project skills and capability, however it additionally serves as instance for any man or woman who builds their non-public custom distribution.&lt;/p&gt;

&lt;p&gt;Yocto Project Contributing Companies&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MXzYGnj---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mhgjozsm6y9ieqee9sx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MXzYGnj---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mhgjozsm6y9ieqee9sx.png" alt="Image description" width="800" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why to not use simply OpenEmbedded?&lt;/p&gt;

&lt;p&gt;• OpenEmbedded is an Open Source Project providing&lt;br&gt;
a Build Framework for Embedded Linux Systems&lt;br&gt;
• Not a reference distribution&lt;br&gt;
• Designed to be the inspiration for others&lt;br&gt;
• Cutting-aspect technology and software program programs&lt;br&gt;
• The Yocto Project is targeted on permitting Commercial&lt;br&gt;
Product Development&lt;br&gt;
• Provides a reference distribution coverage and root document gadget&lt;br&gt;
blueprints&lt;br&gt;
• Co-maintains OpenEmbedded components and improves&lt;br&gt;
their satisfactory&lt;br&gt;
• Provides additional tooling which include Autobuilder and QA&lt;br&gt;
Tests&lt;br&gt;
• Provides gear for utility improvement including ADT and&lt;br&gt;
Eclipse Plugin&lt;/p&gt;

&lt;p&gt;Goals&lt;br&gt;
● Strengthen the Yocto Project thru a steady branding.&lt;br&gt;
● Provide recognition to participating organizations.&lt;br&gt;
● Reduce fragmentation inside the embedded Linux marketplace by means of&lt;br&gt;
encouraging collaborative improvement of a not unusual set of gear,&lt;br&gt;
standards, and practices and make certain that those equipment, requirements,&lt;br&gt;
and practices are architecturally unbiased as an awful lot as possible.&lt;/p&gt;

&lt;p&gt;Yocto Project Participant&lt;br&gt;
● Organizations and entities who use and guide the Yocto Project&lt;br&gt;
publicly.&lt;br&gt;
● Open to open supply initiatives, non-income organizations, small&lt;br&gt;
groups, and Yocto Project member companies.&lt;/p&gt;

&lt;p&gt;Yocto Project Compatible&lt;br&gt;
● Products, BSPs, OpenEmbedded-well matched layers and different open&lt;br&gt;
source software program projects that are constructed and paintings with the Yocto&lt;br&gt;
Project.&lt;br&gt;
● These merchandise and components need to be submitted with the aid of open supply&lt;br&gt;
tasks, non-profit entities, or Yocto Project member companies.&lt;/p&gt;

&lt;p&gt;OpenEmbedded&lt;br&gt;
● Created by merging the work of the OpenZaurus undertaking with&lt;br&gt;
contributions from other initiatives including Familiar Linux and&lt;br&gt;
OpenSIMpad right into a not unusual code base&lt;br&gt;
● Community mission specializing in broad hardware and architectures&lt;br&gt;
● Large library of recipes to go-compile over a thousand programs&lt;br&gt;
● Switched from flat meta-statistics architecture (OpenEmbedded Classic),&lt;br&gt;
to layered architecture primarily based on OpenEmbedded Core layer, which&lt;br&gt;
is in not unusual with the Yocto Project and the Angstrom Distribution&lt;/p&gt;

&lt;p&gt;Yocto Project&lt;br&gt;
● Family of projects for developing Linux-primarily based devices&lt;br&gt;
● Self-contained construct environment supplying gear and blueprints for&lt;br&gt;
constructing Linux OS stacks&lt;br&gt;
● Supported through silicon companies, OSVs (also providing industrial&lt;br&gt;
assist), open source tasks for hardware and software,&lt;br&gt;
electronics corporations&lt;br&gt;
● Standardized components with compliance application&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;In this Article I have tried to explain about the Significance of Yocto Projext and in upcoming articles i will be explaining about the workflow , Thank you.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Scalable service-Oriented MiddlewarE over IP</title>
      <dc:creator>Nithyanand</dc:creator>
      <pubDate>Tue, 12 Dec 2023 06:30:01 +0000</pubDate>
      <link>https://dev.to/nithyanand/scalable-service-oriented-middleware-over-ip-578n</link>
      <guid>https://dev.to/nithyanand/scalable-service-oriented-middleware-over-ip-578n</guid>
      <description>&lt;p&gt;My name is Nithyanand T and I am working as Software Engineer at Luxoft India. In this article I will be providing the detailed information towards Some/IP. Luxoft has provided me with multiple opportunity to work on various projects where Some/IP is one among them.&lt;/p&gt;

&lt;p&gt;Introduction&lt;br&gt;
Today's cars are not just a means of transportation and transportation; vehicles are now designed full of features to make the journey a luxurious experience. All this is achieved by integrating advanced electronics into the vehicle's ECU (Engine Control Unit). This new scenario significantly changed the communication between different ECUs. Traditional automotive protocols such as CAN, MOST, LIN, and Flexray are signal-based communication protocols, and these protocols have some significant limitations, as noted below.&lt;/p&gt;

&lt;p&gt;Traditional protocols such as CAN, LIN, MOST and Flexray have limited bandwidth. These protocols only apply to static systems that have not undergone software updates or upgrades during their lifetime. In these protocols, data is transferred between the sender and receiver where ever an event occurs. The receiver may not need the information for every event. Therefore, in these protocols, there is always additional data in the communication channel that cannot be avoided or managed in any way. Conventional protocols such as CAN, LIN, MOST and Flexray are signal-based communication protocols and do not ensure interoperability between different operating systems, embedded firmware, data interfaces and application software. Due to the aforementioned limitations of traditional automotive communication protocols, in 2011 the BMW Group launched a middleware protocol for data transfer between different heterogeneous units of any ECU, Scalable Service-Oriented Middleware over IP (SOME/Ip).&lt;br&gt;
This protocol's are:&lt;/p&gt;

&lt;p&gt;Scalable: This protocol is designed with scalability and interoperability between heterogeneous devices with different hardware platforms, operating systems and embedded firmware, different application software.&lt;/p&gt;

&lt;p&gt;service-Oriented: It is a service oriented protocol. Therefore in a client-server configuration data is exchanged only when the client requests it or when the server informs certain subscribers about it This ensures that bandwidth are never wasted and data is  transferred/exchanged when necessary.&lt;/p&gt;

&lt;p&gt;MiddlewarE: It is a middleware protocol, which means that it resides in the application layer and has its own general-purpose protocol layers to handle more specific functions and applications.&lt;/p&gt;

&lt;p&gt;over IP: It is an Ethernet-based protocol. It uses a similar hardware interface that provides bandwidth up to 100 Mbps. Data is transmitted through the middleware, or application layer, over a network cable using TCP/IP or UDP protocols. When a client requests information from server the client requests it using TCP protocol. If the server needs to transmit data to all active subscribers, it is sent through UDP protocol. Communication over the UDP protocol can be unicast, multicast or broadcast.&lt;/p&gt;

&lt;p&gt;Features of the SOME/IP protocol SOME/IP is a network layer protocol that works as a middleware, ie. is logically implemented in the application layer. As a middleware, IUJ/IP can provide many different applications/functions, such as different general-purpose protocol layers. Some of the key functions/applications of IUJ/IP are as follows. Serialization: The protocol takes care of converting messages between ECUs in a wired representation and back. In cable form, the protocol is compatible with the AUTOSAR .x standard. Remote Procedure Calls (RPC) and Messaging: The protocol can deliver messages (sent as fields) and remote procedure calls (application procedure/function calls). &lt;/p&gt;

&lt;p&gt;Service Discovery&lt;br&gt;
Communication using the SOME/IP protocol takes place in a client-server agreement. Some /IP addresses are based on the architecture of the service. The server provides many different services that client devices can subscribe to. The protocol allows clients to dynamically search for, subscribe to, and allocate access to services.&lt;/p&gt;

&lt;p&gt;Publish/Subscribe: Communication in ANY/IP is via publish/subscribe. Clients can subscribe to services provided by the server, and the server can publish notifications to active subscribers. It allows dynamic configuration between client devices and the server. With publish/subscribe, the server can selectively deliver data to clients that need specific messages between ECUs.&lt;/p&gt;

&lt;p&gt;Segmentation of UDP  messages: When the server needs to send notifications to active subscribers, they are sent using the UDP protocol. ANY/IP can transmit large UDP messages without fragmentation.&lt;/p&gt;

&lt;p&gt;How SOME/IP protocol works&lt;br&gt;
All communication in the SOME/IP protocol occurs as services. The ECU server provides services. Client devices can dynamically discover services provided by the server (Service Discovery), order services and complete settings to access the ordered services.&lt;/p&gt;

&lt;p&gt;Services are a combination of areas, events and/or methods. A field represents the state of an entity and can be a notifier, recipient, or setter. A notifier is field that are sent from the server to the client when the value changes A getter is a field that client sends to server and request a specific value. A setter is a field that the client sends to the server to explicitly change the value.&lt;/p&gt;

&lt;p&gt;An event is message sent from server to client when a value is changed or sent cyclically to clients A method is a (program) function that can be called. The method are invoked on the server by a remote call from the client. A service provides interface and a single instance of service that implements the service interface which is called a service instance A service instance is provided by server ECU that implements the service interface. The client ECU can use service event to retrieve the necessary data fields, events, and methods from server ECU.&lt;/p&gt;

&lt;p&gt;Client devices know about available services ie. available service instances, using the service discovery protocol. The service request protocol has two mechanisms for communicating the availability of services - "Offer Service" and "Search Service". When the server ECU communicates available services to the network (all client ECUs), the mechanism is called "service provisioning". When clients request available services from the ECU server, the Find Service mechanism is called. Therefore, the search for services available on the network can be initiated by both the server ECU and the client ECU.&lt;/p&gt;

&lt;p&gt;SOME/IP supports the following complex data types–&lt;/p&gt;

&lt;p&gt;struct: This is a list of predefined parameters. The structure begins with an optional length field that indicates all bytes following the length field.&lt;/p&gt;

&lt;p&gt;string: Strings containing ASCII,UTF-8 and UTF-16 characters. Springs can be fixed length or dynamic length Dynamic length strings start with an endian field indicating the length of the string.&lt;/p&gt;

&lt;p&gt;array: A set of parameters of same data type. Arrays can be one-dimensional or multi-dimensional. The table length can be fixed or dynamic. A dynamic length table starts with a length field.&lt;/p&gt;

&lt;p&gt;enumeration: It is an unsigned integer that expresses different values ​​in its bits.&lt;/p&gt;

&lt;p&gt;union/variant: It is the parameter which contain other's parameter of different data types.&lt;/p&gt;

&lt;p&gt;Data is transferred between the server ECU and the client ECU via UDP or TCP protocols. The UDP protocol is used when the server needs to send data to all active subscribers (such as notification fields and events). Data transmission with UDP can be unicast, multicast or broadcast. When the client needs to send data to the server (such as getter, setter fields and RPC), the client must connect to the server using the TCP protocol.&lt;/p&gt;

&lt;p&gt;In SOME/IP, there is the four methods remote procedure calls (RPC) and are as follows:&lt;/p&gt;

&lt;p&gt;Request/Response method: In this method a request for calling a function sent by the client to the server and the server sends back a response to the client The response can be a positive acknowledgment or an error message. The function are run on the server ECU at request from a client ECU.&lt;/p&gt;

&lt;p&gt;Fire and Forget method: In this method, the client sends a request for calling a function to the server, and the server does not communicate any response to the client.&lt;/p&gt;

&lt;p&gt;Services-Event:  Event is message communicated from server to client when a value are changed and cyclically communicated to clients. The server notifies the change in a value only to the clients who have subscribed for that service. The notification is sent every time the event occurs, i.e., the value related to the subscribed service is changed.&lt;/p&gt;

&lt;p&gt;Services-Field: A field is a property/attribute of service. It can be a notifier, getter, or setter. Getter is method which read a field value and Setter is the method to change the field value. Notifier is notification event triggered by a change of a field value.&lt;/p&gt;

&lt;p&gt;The data like fields, events, and methods is transferred in protocol data units (PDUs) as TCP/UDP messages payloads. The TCP/UDP messages are transported over an IP-based in-vehicle network enabling inter-ECU data communication. A header precedes the payload. For ensuring inter-operability, the header layout is identical for all implementations of SOME/IP The header consist of a 32-bit Message ID, 32-bit Length Field, 32-bit Request ID/Session ID, 8-bit Protocol Version/8-bit Interface Version/8-bit Message Type/8-bit Return Code Hence, a TCP/UDP data packet communicated over SOME/IP protocol has the following PDUs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4YK7rGeJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5j12blsicw7a1oknia79.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4YK7rGeJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5j12blsicw7a1oknia79.png" alt="Image description" width="768" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TCP or UDP data packet in SOME/IP protocol &lt;br&gt;
SOME/IP Protocol Data Units&lt;/p&gt;

&lt;p&gt;Advantages of SOME/IP Protocol&lt;br&gt;
The Some/IP protocol has many advantages over traditional automotive protocols such as CAN, LIN and MOST. Some of the notable benefits of Some/IP include: As a service-oriented protocol, it is interoperable and scalable. New parameters and functions can be easily added to the vehicle system via Some/IP. Only the header must be identical across all network/IP applications. Some/IP offers great flexibility for all types of data transfer between ECUs in a tightly coupled ecosystem, allowing the transfer of scalar data values ​​into complex data structures.&lt;/p&gt;

&lt;p&gt;SOME/IP provides high bandwidth for data communication in the range of 100 Mbps and ensures that bandwidth is not wasted by providing each data transfer in a client-server configuration. Some/IP allows the implementation of complex service interfaces, supporting many different data types and multiple RPC mechanisms. Data from Server ECU can be transmitted to client ECU via unicast multicast and broadcast. As middlewar is even suitable for CPU-intensive applications Some/IP can implemented in many automotive operating systems and even embedded firmware without operating system.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
Cars are now mostly packed with complex heterogeneous electronics housed in the vehicle's ECU. These functions include infotainment systems, driver assistance, cameras, diagnostics, navigation and internet applications. Such versatile applications require a flexible, interoperable and scalable network layer protocol that enables easy value addition to the vehicle ecosystem despite different hardware and software environments. SOME/IP, a service-oriented protocol built on top of Ethernet, is perfect for new automotive applications. Compatibility with the AUTOSAR .x standard and compatibility with other automotive operating systems and non-OS firmware make Some/IP the best choice for automotive software.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Iceoryx: true zero-copy inter-process-communication</title>
      <dc:creator>Nithyanand</dc:creator>
      <pubDate>Thu, 07 Dec 2023 07:25:51 +0000</pubDate>
      <link>https://dev.to/nithyanand/iceoryx-true-zero-copy-inter-process-communication-3k8k</link>
      <guid>https://dev.to/nithyanand/iceoryx-true-zero-copy-inter-process-communication-3k8k</guid>
      <description>&lt;p&gt;Hello Readers,&lt;/p&gt;

&lt;p&gt;My name is Nithyanand T, and I work at Luxoft India as a Junior Software Developer. Luxoft has given me several opportunities to work on various projects, which has inspired me to learn the essential processes involved in developing AUTOSAR Modulеs and Add-Ons in Iceoryx IPC Mechanism.&lt;/p&gt;

&lt;p&gt;Introduction&lt;br&gt;
Glad you joined this great Eclipse project! To get started, you'll give a quick background presentation, showing the scope of the project and everything you'll need to set up, &lt;/p&gt;

&lt;p&gt;along with a first-time use case. First: What is iceoryx? iceoryx is an inter-process communication (IPC) middleware for various operating systems (we currently support Linux, macOS, QNX, FreeBSD and Windows 10). It comes from the automotive industry, where large amounts of data must be transferred between different processes in driver assistance or automated driving systems. However, effective communication mechanisms can also be applied to broader use cases, such as robotics or game development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EQsIed5L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ghaa7ig7yhf5v4d7dt1a.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EQsIed5L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ghaa7ig7yhf5v4d7dt1a.gif" alt="Image description" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;iceoryx uses a true zero-copy shared memory approach that allows data to be transferred from publishers to subscribers without a single copy. This ensures data transmission with a constant delay, regardless of the size of the payload.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---wZBMreG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lhk6h3mwwb4luybjlx67.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---wZBMreG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lhk6h3mwwb4luybjlx67.png" alt="Image description" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You're right, middleware is a cluttered time period and might by some means be all or nothing. To get a higher impact what this indicates for iceoryx, please have a examine our dreams and non-dreams.&lt;/p&gt;

&lt;p&gt;Don't get too fearful of the API whilst walking via the example.Think of the untyped C++ and the C API as a "plumbing" one ("plumbing" as defined in Git, which means low-level). We're not using the "plumbing" APIs ourselves, but instead the typed C++ API. The everyday use case is that iceoryx is included as high-overall performance IPC shipping layer in a larger framework with extra API layers. An instance for such a "porcelain" API could be ROS 2.&lt;/p&gt;

&lt;p&gt;Full API documentation can be found at 🌐 &lt;a href="https://iceoryx.io"&gt;https://iceoryx.io&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supported Platforms&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Supported Platforms Editing or adding new platforms is described in the custom iceoryx platforms article.&lt;/p&gt;

&lt;p&gt;The operating system compiler supports shared memory command line parsing privileges&lt;br&gt;
Linux   gcc/clang   yes yes&lt;br&gt;
QNX gcc yes yes&lt;br&gt;
MacOS   clang   no, not planned for implementation  yes&lt;br&gt;
Windows 10 msvc no, now no longer deliberate for implementation could be implemented&lt;br&gt;
FreeBSD (Unix)  clang   no, not planned for implementation  yes&lt;br&gt;
In general, Unix platforms should work with iceoryx, but we only test FreeBSD with our CI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build and install&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All iceoryx libraries are deployed as unbiased CMake packages. Posh uses and relies on hoof functions. You can build amazing hooves and integrate them into existing CMake projects. Although we strive to be fully POSIX compliant, we recommend using Ubuntu 18.0 and at least GCC 7.5.0 for development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;sudo apt install gcc g++ cmake libacl1-dev libncurses5-dev pkg-config&lt;br&gt;
Additionally, there is an optional dependency on the cpptoml library that is used to parse the RouDi configuration file containing the mempool configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;&lt;br&gt;
If you don't have a Windows installation, Microsoft provides free software images here.&lt;br&gt;
Additionally, CMake and git are required. The option to add CMake to the system PATH for all users should be set when installing. If you are using the Microsoft developer image, Visual Studio Community 2019 is already installed, otherwise you can find it here.&lt;/p&gt;

&lt;p&gt;To be able to compile iceoryx, the Desktop development with C++ Workload must be installed. To do this, launch VisualStudioInstaller and select the Edit button for Visual Studio Community 2019.&lt;/p&gt;

&lt;p&gt;Either VS Code or Developer Command Prompt may be used to construct iceoryx with CMake. It may take a restart or two for CMake to find the compiler. Alternatively, C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars6 .bat can be run in any shell to set all build paths.&lt;/p&gt;

&lt;p&gt;** Build with CMake**&lt;/p&gt;

&lt;p&gt;CMakeLists.txt from the iceoryx_meta file can be used to develop ICEoryx with the IDE.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repository&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;git clone &lt;a href="https://github.com/eclipse-iceoryx/iceoryx.git"&gt;https://github.com/eclipse-iceoryx/iceoryx.git&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generate the necessary build files&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;cd iceoryx&lt;br&gt;
cmake -Bbuild -Hiceoryx_meta&lt;br&gt;
//// after installing external dependencies (eg ncurses) you must add them&lt;br&gt;
//to your prefix path&lt;br&gt;
cmake -Bbuild -Hiceoryx_meta -DCMAKE_PREFIX_PATH=$(PWD)/build/dependencies/&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RouDi&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;RouDi is an abbreviation for Routing and Discovery. RouDi looks after the verbal exchange setup however does now no longer absolutely take part withinside the verbal exchange among the writer and the subscriber or the patron and the server. RouDi may be concept of because the switchboard operator of iceoryx. One of its different important duties is the setup of the shared reminiscence, which the programs use for replacing payload data. Sometimes known as daemon, RouDi manages the shared reminiscence and is chargeable for the carrier discovery, i.e. allowing subscribers/customers to discover subjects provided with the aid of using publishers/servers. It additionally maintains song of all programs that have initialized a runtime and are consequently capable of create publishers, subscribers, servers or customers. It presents centers for programs to question this information. When an utility crashes, RouDi cleans up all resources. Due to our on the whole lock-loose inter-manner mechanisms (handiest one remaining lock; we're running to put off it), iceoryx-primarily based totally verbal exchange is a whole lot extra dependable in comparison to conventional mechanism the use of locking. To view the to be had command line alternatives for RouDi call $ICEORYX_ROOT/build/iox-roudi --help. &lt;/p&gt;

&lt;p&gt;Shared Memory&lt;/p&gt;

&lt;p&gt;To allow zero-reproduction inter-manner verbal exchange, iceoryx makes use of the shared reminiscence approach, i.e. publishers and subscribers or customers and servers can speak through shared reminiscence ensuing in zero-reproduction verbal exchange. Shared reminiscence is bodily reminiscence this is made reachable to a couple of methods through a mapping to a reminiscence vicinity of their digital cope with spaces.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;In this Article I have tried to explain about the Significance of Iceoryx IPC Meachanism, in upcoming slides i will explain more Please let me know if any improvements needs to be done Thank you.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Service-Oriented Architecture in Autosar</title>
      <dc:creator>Nithyanand</dc:creator>
      <pubDate>Wed, 06 Dec 2023 07:07:05 +0000</pubDate>
      <link>https://dev.to/nithyanand/service-oriented-architecture-in-autosar-3a6b</link>
      <guid>https://dev.to/nithyanand/service-oriented-architecture-in-autosar-3a6b</guid>
      <description>&lt;p&gt;Hello Readers,&lt;/p&gt;

&lt;p&gt;My name is Nithyanand T, and I work at Luxoft India as a Junior Software Developer. Luxoft has given me several opportunities to work on various projects, which has inspired me to learn the essential processes involved in developing AUTOSAR Modulеs and Add-Ons in Service-Oriented Architecture in Autosar .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service-Oriented Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Service-oriented architecture (SOA) is a modern software architecture paradigm for building applications as a collection of software units called services. In SOA, offerings are self-contained, modular, and loosely coupled. This approach allows you to build complex and distributed applications where you can update individual components instead of entire monolithic applications. A typical SOA software package includes an application that includes services, platform services, and middleware. These services run on high-performance hardware or a virtual machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qTlQpBdk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gms0punzrq06dg7gy3rm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qTlQpBdk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gms0punzrq06dg7gy3rm.png" alt="Image description" width="404" height="580"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service-Oriented Communication (SOC)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SOA-based applications use service-oriented interfaces for service-oriented communication to provide and use functions to exchange information through messages. Services act as clients or servers in SOA. Each client or server service is implemented as part of the software. The connection points between client and server components are known as client/server ports, which make up the service-oriented interfaces.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PGugsKhx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oydu1188qtrrc7q757rr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PGugsKhx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oydu1188qtrrc7q757rr.png" alt="Image description" width="800" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To facilitate data exchange, the client and server components use different service-oriented communication models, such as publish-state, request-response, and fire-forget. These patterns can be asynchronous or periodic, which is a key feature of SOC. Event-based modeling can be done using Stateflow and SimEvents. In addition, the Messages &amp;amp; Events library in Simulink® enables you to model, simulate, and generate C++ code for applications using message-based communication.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uF59rioa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a0li73tbolqtjrzppimt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uF59rioa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a0li73tbolqtjrzppimt.png" alt="Image description" width="747" height="855"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;SOA Workflow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A model-driven design workflow enables you to build service-oriented applications:&lt;/p&gt;

&lt;p&gt;Specifying requirements with Requirements Toolbox&lt;br&gt;
Authoring SOAs using System Composer Modeling and simulating services and components in Simulink Importing existing services and components for reuseGenerating C++ production code with Embedded Coder® Integrating the full SOA application&lt;br&gt;
Deploying SOA applications to edge devices and the cloud SOA in Automotive SOAs are most common in the automotive industry with Software Defined Vehicles (SDVs).&lt;/p&gt;

&lt;p&gt;SDV integrates both signal-based and service-oriented applications into newer EE architectures with vehicle computers and zone controllers. With System Composer and Simulink, developers can model SOAs, simulate them, and generate C++ production code before deploying them as modular services to edge devices and the cloud.&lt;/p&gt;

&lt;p&gt;In addition, these services can be wirelessly updated with software updates throughout the life of the vehicle to improve the customer experience. SOAs are included in both the above-mentioned industry standards and in-house frameworks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PIcb8YAF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ihznpz4gloj47an35kyr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PIcb8YAF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ihznpz4gloj47an35kyr.png" alt="Image description" width="482" height="684"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i3X2JBqY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mgdcbwedbe4msiscuswp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3X2JBqY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mgdcbwedbe4msiscuswp.png" alt="Image description" width="482" height="684"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Cases for SOA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In software-based systems that include autonomy, connectivity and electrification, service-oriented architecture plays a crucial role as a foundation. SOAs are also used to build systems, multi-agent systems, discrete event systems, and distributed systems in the automotive, aerospace, industrial automation and Internet of Things, medical device, and robotics industries.&lt;/p&gt;

&lt;p&gt;To support these industries, software architecture frameworks, middleware standards and communication protocols based on service-oriented architecture and service-oriented communication have appeared. Examples of these frameworks and standards are AUTOSAR Adaptive, DDS, ROS/ROS2, FACE, SOME/IP, MOSA, MQTT and OPC UA.&lt;/p&gt;

&lt;p&gt;In a service-oriented architecture, communication between services takes place with clearly defined interfaces at the SW level, i.e. by middleware. The middleware supports abstraction of the specific HW environment and greatly simplifies software development and testing. This provides the foundation for a truly distributed development environment that can and does collaborate with third parties. Automotive SOA takes the basic SOA concept of service providers and service consumers and transforms them into an automotive software environment. Each ECU uses layers of abstraction to hide network topology, communication and implementation complexity. Interactions between software components are therefore no longer coded. Each new service is represented in a directory where you can propose its functions and find the services you need. The relationship between services is not fixed and can be changed dynamically. Each ECU supported by the hypervisor can run several different operating systems in parallel: popular operating systems such as Windows, MacOS, iOS, Android, etc. can support installing standard applications and third-party applications. &lt;/p&gt;

&lt;p&gt;While downloading malicious or buggy apps to a smartphone can affect the functionality of the smartphone or the user's privacy, downloading such inappropriate apps to the car can affect driving safety and have fatal consequences. &lt;/p&gt;

&lt;p&gt;Therefore, communication between services is limited to mandatory interactions. Everything else is blocked. Highly secure SWC OTA download and deployment prevents malicious or unintended attack vectors from affecting your car's security.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;In this Article I have tried to explain about the Significance of  in Service-Oriented Architecture Autosar, Please let me know if any improvements needs to be done Thank you.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
