I'm trying to learn CAPL and Im trying to accomplish the following .
I have a huge matrix of communication with strict timing.
Id like to have a CAPL code which can monitor all the messages if the were received or not , check there periodicity.
I'm able to read the Write CSV files in and from CAPL and thats how i'm getting my input and transmitting the output.
The point here. does CAPL supports providing insights or statistics about a message like (Max peroid , avg Peroid , Min Peroid) , was it transmitted or not.how to obtian such info from CAPL
CAPL primitive functions provide you TestCheck functions, which have a multitude of versions (check relative cycle time, Absolute Cycle time, Occurence etc.) for checking in a parallel thread something specific about your messages (like cycle time).
ChkCreate_MsgAbsCycleTimeViolation() is one example.
They provide you a test result with detailed tables of minimum-maximum cycle times, distribution on a cycle time scale and so on.
Search TestCheck functions up in the CANoe help for description and examples.
Related
enter image description here
I'm trying to measure time of expend of a piece in an assembler in AnyLogic, I cannot use time measure start/end because the agent/part become a an assembled part.
I've using this two pieces of code without the "agent." I can see a some results but they do not make sense to me, is like is not considering the delay time i'm using in the assembler. I have allocated the codes at the start device and in the sink but same results.
I also tried to adding some agent name but the error changes to the variable canno be resolved or is not a field
Those are the codes I'm using
timeOnGch=time() (In the start element)
timeGchDist.add(time()-timeOnGch) (at the sink)
the suggestion the complete
these are the complete codes Im using
I'm doing a research for the VANET network for my master thesis. I'm using OMNET++, SUMO and VEINS, for the evaluation of the performance in a scenario of car accident. For the moment I want to generate some results for the received power, signal to noise ratio, bit-rate and packet collision, based on three types of antenna's. From the results that I'm taking from the .sca file doesn't show those parameters. I have done some modifications in the source codes, but with no results!
So I wanted to ask you, is there any possibility to generate the results of those parameters and if yes can you help or guide me telling in quick steps how to do it well (modifying the source code or something else)?
Hi you can take a look at omnetpp tutorial 5
https://docs.omnetpp.org/tutorials/tictoc/part5/#52-adding-statistics-collection. This should provide you the basics for scalar and vector file analysis.
To all of you that want to know, here is the overall solution:
The MAC layer extracts some control info received from the physical layer [1];
This control info (received power, snr, etc) is given in [2];
We must modify the Mac1609_4.cc to such data as vectors (results in the .vec file) [3];
[1]
https://github.com/sommer/veins/blob/master/src/veins/modules/mac/ieee80211p/Mac1609_4.cc#L558
[2]
https://github.com/sommer/veins/blob/master/src/veins/modules/phy/DeciderResult80211.h
[3] https://doc.omnetpp.org/omnetpp/manual/#sec:sim-lib:coutvector
Next in the Mac1609_4.h add the vector: cOutVector recvPower_dBm;
Now in Mac1609_4.cc add the following:
double power;
power = ((DeciderResult80211*)msg->getControlInfo())->getRecvPower_dBm();
recvPower_dBm.record(power);
This should help to record the parameters that you want!
I am simulating a large sensor network, and I want to know if there is a way to record only some simulation results instead of all results. If yes, how to specify results I want to record. Does recording few results instead of all have an impact on the simulation time?
Using vector-recording and scalar-recording in omnetpp.ini is the simplest way to control result items.
An example.
Let's assume that there are 10 hosts, and lostPackets scalar is recorded. But we want to record this scalar only for host[2] and host[3]. So we can write in omnetpp.ini:
**.host[2].somemodule1.somemodule2.lostPackets.scalar-recording = true
**.host[3].somemodule1.somemodule2.lostPackets.scalar-recording = true
**.host[*].somemodule1.somemodule2.lostPackets.scalar-recording = false
It is worth to notice, that more advanced control of recording results is available when Signal-Based Statistics are used.
It is difficult to say what is impact of recording results into simulation efficiency - it depends on many factors (e.g. how often vector entries are recorded, how many modules record items).
You can enable and disable result and select different recording modes from the ini file.
If you have too many values in your .sca files, you can also simply filter them from the Browse Data interface (where you access all the recorded values).
I am using omnet++ for my experiment.
But, I want to experiment with my input not fixed input.
I do not know which API to use user input
How to use user input during simulation?
OMNeT++ simulations are written in C++, so you can use the full power of C++ libraries to read from files, the network, a gamepad, a kinect, etc to influence running simulations. Just create a simulation module that repeatedly reads data from such a source, e.g., once every simulated millisecond, then sends cMessages or changes modules' parameters in reaction to what it reads.
Below is a general ETL flow chart diagram.I am really confused if it is a good practice to draw such a flow chart.Especially at lines connecting the final output , and the big box used to generalize the whole process that goes from input format to 'Validate files as per type of file' to 'Adjustments for desired output' and finally to 'outputs'.
In concept, to provide an overview of the process, a Context diagram or Data Flow Diagram can be used as well as a Flow Chart. While all these diagrams are old, they are usually useful.
I suggest that you check the following points in your diagram - What I have here are personal suggestions based on long history with ETL.
Your processing shape (say rectangle) must have at least one entry (input) and at least one exist(output). Example: The two large rectangles don't have clear inputs and outputs! What is going on there?
You can't have outputs without a process - Example: Type 1 is somehow split into Type 1.1 and Type 1.2. How is that split happened? Is it by a program? Which one? Another example is Type 1.1 has an arrow connected to Output 1. Again same questions hold. Another example is "Rejected folder" to email.
The name of the process should indicate what the process is or the actual program component name or physical file names. This is valuable in ETL.
You may want to show the process triggering event such as time of day.
Use remarks.
Make the level of detail consistent.