Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1415 → Rev 1416

/demos/trunk/rtw/rtw.c
371,8 → 371,6
rtExtModePauseIfNeeded(rtmGetRTWExtModeInfo(S),
(boolean_T *)&rtmGetStopRequested(S));
cprintf(".(%dus out = %lf)",(int)(rtmGetT(S)*1000000.0),*(real_T *)(rtmGetY(S)));
if (rtmGetStopRequested(S)) break;
rt_OneStep(S);
 
396,7 → 394,7
int input_ports = rtmGetNumU(S);
real_T *input;
 
cprintf("Number of inputs = %d\n",input_ports);
cprintf("Number of Inputs = %d\n",input_ports);
 
input = (real_T *)rtmGetU(S);
 
413,39 → 411,100
 
}
 
TASK OUTPUT_body(void *arg) {
int output_ports = rtmGetNumY(S),i;
real_T *output;
cprintf("Number of Outputs = %d\n",output_ports);
output = (real_T *)rtmGetY(S);
while(1) {
 
cprintf("T=%6lf ",rtmGetT(S));
for (i=0;i<output_ports;i++)
cprintf("O[%d]=%6lf ",i,output[i]);
cprintf("\n");
task_endcycle();
}
return NULL;
}
 
int main() {
 
HARD_TASK_MODEL RTW_task,INPUT_task;
PID RTW_pid,INPUT_pid;
HARD_TASK_MODEL RTW_task,INPUT_task,OUTPUT_task;
PID RTW_pid,INPUT_pid,OUTPUT_pid;
 
int RTW_period;
int RTW_wcet;
 
int INPUT_period;
int INPUT_wcet;
 
int OUTPUT_period;
int OUTPUT_wcet;
 
Init_RealTime_Workshop();
 
RTW_period =(int)(rtmGetStepSize(S) * 1000000.0);
RTW_wcet = (int)(rtmGetStepSize(S) * 1000000.0 * 0.45);
 
INPUT_period = (int)(10000.0);
INPUT_wcet = (int)(10000.0 * 0.20);
 
OUTPUT_period = (int)(20000.0);
OUTPUT_wcet = (int)(20000.0 * 0.25);
 
cprintf("Task Setup\n");
cprintf("RTW (P %8d W %8d)\n",RTW_period,RTW_wcet);
cprintf("INPUT (P %8d W %8d)\n",INPUT_period,INPUT_wcet);
cprintf("OUTPUT (P %8d W %8d)\n",OUTPUT_period,OUTPUT_wcet);
hard_task_default_model(RTW_task);
hard_task_def_mit(RTW_task,20000/*(int)(rtmGetStepSize(S) * 1000000.0)*/);
hard_task_def_wcet(RTW_task,9000);
hard_task_def_mit(RTW_task,RTW_period);
hard_task_def_wcet(RTW_task,RTW_wcet);
hard_task_def_usemath(RTW_task);
hard_task_def_ctrl_jet(RTW_task);
 
RTW_pid = task_create("RTW",RTW_body,&RTW_task,NULL);
if (RTW_pid == NIL) {
cprintf("Error: Cannot create RealTime Workshop Task\n");
cprintf("Error: Cannot create RealTime Workshop [RTW] Task\n");
sys_end();
}
 
hard_task_default_model(INPUT_task);
hard_task_def_mit(INPUT_task,20000);
hard_task_def_wcet(INPUT_task,9000);
hard_task_def_mit(INPUT_task,INPUT_period);
hard_task_def_wcet(INPUT_task,INPUT_wcet);
hard_task_def_usemath(INPUT_task);
hard_task_def_ctrl_jet(INPUT_task);
INPUT_pid = task_create("INPUT",INPUT_body,&INPUT_task,NULL);
if (INPUT_pid == NIL) {
cprintf("Error: Cannot create RealTime Workshop Task\n");
cprintf("Error: Cannot create RealTime Workshop [INPUT] Task\n");
sys_end();
}
 
hard_task_default_model(OUTPUT_task);
hard_task_def_mit(OUTPUT_task,OUTPUT_period);
hard_task_def_wcet(OUTPUT_task,OUTPUT_wcet);
hard_task_def_usemath(OUTPUT_task);
hard_task_def_ctrl_jet(OUTPUT_task);
OUTPUT_pid = task_create("OUTPUT",OUTPUT_body,&OUTPUT_task,NULL);
if (OUTPUT_pid == NIL) {
cprintf("Error: Cannot create RealTime Workshop [OUTPUT] Task\n");
sys_end();
}
 
task_activate(INPUT_pid);
task_activate(RTW_pid);
task_activate(OUTPUT_pid);
 
while(simulation_run);