-
Notifications
You must be signed in to change notification settings - Fork 2
/
process_a.cpp
47 lines (36 loc) · 930 Bytes
/
process_a.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/**
This file implements process a.
**/
#include "process_a.h"
#include "rtx.h"
#include <string.h>
// Return the process tuple.
Process::ProcessTuple ProcessA::process()
{
return ProcessTuple( PROCESS_A, HIGH, 0 );
}
void ProcessA::main()
{
// Initialize the counter
int m_counter = 0;
// Receive message and deallocate it.
MsgEnv * message = RTX::receive_message();
RTX::release_msg_env(message);
while( true )
{
// Get a message envelope.
MsgEnv * count_message = RTX::request_msg_env();
// Set contents of envelope and send it to process b.
MESSAGE_TYPE count = COUNT_REPORT;
count_message->set_type( count );
sprintf( count_message->m_data, "%i", m_counter );
RTX::send_message( PROCESS_B, count_message );
// Increment the counter.
m_counter++;
// Release the processor.
RTX::release_processor();
}
}
void ProcessA::terminate()
{
}