Coder Social home page Coder Social logo

core-rg / fico4omnet Goto Github PK

View Code? Open in Web Editor NEW
9.0 5.0 8.0 2.94 MB

FiCo4OMNeT stands for „Fieldbus Communication For OMNeT“. At this point the model consists of two communication technologies – CAN and FlexRay. Both of them are implemented based on the according specification with some adaptions to fit in the simulation environmnet.

Home Page: http://sim.core-rg.de

License: BSD 3-Clause "New" or "Revised" License

Makefile 0.50% C++ 82.37% C 0.36% Shell 0.07% Batchfile 0.06% Python 13.53% Perl 3.10%
simulation omnetpp omnet core-rg simulation-models fieldbus flexray can

fico4omnet's Introduction

FiCo4OMNeT

FiCo4OMNeT is an open source simulation model for the event-based simulation of fieldbus technologies in the OMNEST/OMNeT++ simulation system. It enables the simulation of CAN and Flexray technologies.

FiCo4OMNeT Environment

History

FiCo4OMNeT was first introduced as FlexRay simulation model at the 6th International Workshop on OMNeT++ (2013) along with the 6th International ICST Conference on Simulation Tools and Techniques (2013). You can find the publication and slides here.

To merge the simulation models of CAN and FlexRay significant changes were necessary. The result of this merging process is the FieldBus for OMNeT++ Simulation model (FiCo4OMNeT).

News

  • Updated dependency to OMNeT++ 6.0.2

Features

CAN

It is possible to create networks with traffic consisting of Data-, Remote- and Error-Frames. To get some variation in the transmit and receive times of cyclic messages it is possible to simulate a clock drift.

The arbitration ensures that the frame with the highest priority is transmitted as soon as several nodes try to transmit their messages.

FlexRay

Each node can transmit messages in the assigned slots within the static and the dynamic segment. Based on the configuration the frame is transmitted on channel A, channel B or on both. Every member of the network has an own clock. Based on the configuration each clock has an inaccuracy. The implemented synchronisation compensates theses drifts.

Reference

If you would like to reference this project please use the following publication:

Philipp Meyer, Franz Korf, Till Steinbach, Thomas C. Schmidt, Simulation of Mixed Critical In-vehicular Networks, In: Recent Advances in Network Simulation, (Antonio Virdis, Michael Kirsche Ed.), ser. EAI/Springer Innovations in Communication and Computing, May 2019. https://doi.org/10.1007/978-3-030-12842-5_10

Quick Start

  1. Download OMNeT++ 6.0.2
  2. Install OMNeT++
  3. Get CoRE framework
    • GitHub: Clone this repository and import it in OMNEST/OMNeT++
  4. Working with the framework
    • See the documentation in doc/
    • Start the examples in the framework

Continuous Integration

The build state of the master branch is monitored:

  • Building:
  • Tests:
Ubuntu 22.04 Windows 11
Building
Tests

Further Information

Installation

Please see INSTALL

Documentation

Please see doc/

IMPORTANT

The FiCo4OMNeT model is under continuous development: new parts are added, bugs are corrected, and so on. We cannot assert that the implementation will work fully according to the specifications. YOU ARE RESPONSIBLE YOURSELF TO MAKE SURE THAT THE MODELS YOU USE IN YOUR SIMULATIONS WORK CORRECTLY, AND YOU'RE GETTING VALID RESULTS.

fico4omnet's People

Contributors

maxxor avatar musteblume avatar teesiep avatar thaeckel avatar tillsteinbach avatar zoltanbojthe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

fico4omnet's Issues

Errors while simulating FlexRay example tests

Hello guys,
I am new to this environment, and I tried to run your example tests for CAN and FlexRay. I am facing errors while running FlexRay example codes. Could you give me a solution? CAN examples are going through.

Also, is there a way to print packets during the simulation? I was unable to install osg-earth, I guess that's why the sequence chart is not opening for me. Any tips would be really helpful.
Error message :

**<!> Error: (omnetpp::cModule)frBus: Gate index 0 out of range when accessing vector gate 'channelA$i[]' with size 0, at /home/shrinidhi/git/FiCo4OMNeT/examples/flexray/dynamic/dynamic.ned:49 -- in module (omnetpp::cModule) dynamic (id=1), during network setup

End.

Simulation terminated with exit code: 1
Working directory: /home/shrinidhi/git/FiCo4OMNeT/examples/flexray/dynamic
Command line: opp_run -m -c General -n ../..:../../../examples_andl:../../../simulations:../../../src -l ../../../src/FiCo4OMNeT u1.ini**

CAN FD implementation

Hi Team,

Any plans for implementing CANFD?

Any documentation available to implement?

Rgds
Chandra

Trace files

Hello,

Is it possible to read/generate CAN traffic from trace files?

Thanks,

Error message- Simulating Can and flexray Examples

Hi guys,
I am new to this environment, and I tried to run your example tests for CAN and FlexRay in OMNeT++ 6.0pre13. I am facing errors while running Can and FlexRay example codes. Could you please give me a solution?.Thank you.

In CanDataFrame Message where are we setting the Payload value information

packet CanDataFrame{
string displayString;
unsigned int canID; // ID of the message
bool rtr; // true if remote-frame
double period; // Periodicy of the message
}

The above is the CanDataFrame ,on which field do i need to set the Payload information.

In initialFrameCreation("data", dataFrameIDsTokenizer, dataFramesPeriodicityTokenizer,
dataLengthDataFramesTokenizer, initialDataFrameOffsetTokenizer);

we are setting Payload_packet with the size but where are we setting the Payload value?
cPacket *payload_packet = new cPacket;
payload_packet->setTimestamp();
payload_packet->setByteLength(dataFieldLength);
can_msg->encapsulate(payload_packet);

image

I am refering to 8 bits Data or dataframe
DATA– Used to store up to 64 data bits of application data to be transmitted.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.