Subversion Repositories shark

Rev

Blame | Last modification | View Log | RSS feed

#include "kernel/kern.h"
#include "modules/cabs.h"

#include "tmwtypes.h"

#include "rtw.h"

extern CAB input_cid[NINPUTCAB];

TASK SENSOR_body(void *input_port) {

    real_T *p;
    int in = (int)(input_port);
    char cname[20];
                                                                                                                             
    if (in >= NINPUTCAB) return NULL;
                                                                                                                             
    sprintf(cname,"INPUT%d",in);
    input_cid[in] = cab_create(cname, sizeof(real_T), 2);
                                                                                                                             
    while(1) {
                                                                                                                             
        /* Reserve a message */
        p = (real_T *)cab_reserve(input_cid[in]);
                                                                                                                             
        /* Save data */
        *p = 1000.0;
                                                                                                                             
        /* Put CAB message */
        cab_putmes(input_cid[in], p);
                                                                                                                             
        task_endcycle();
                                                                                                                             
    }
                                                                                                                             
    return NULL;

}

void activate_sensors() {

    HARD_TASK_MODEL     SENSOR_task;
    PID                 SENSOR_pid;

    hard_task_default_model(SENSOR_task);
    hard_task_def_mit(SENSOR_task,10000);
    hard_task_def_wcet(SENSOR_task,1000);
    /* Set sensor port number */
    hard_task_def_arg(SENSOR_task,(void *)(0));
    hard_task_def_usemath(SENSOR_task);
    hard_task_def_ctrl_jet(SENSOR_task);
                                                                                                                             
    SENSOR_pid = task_create("SENSOR0",SENSOR_body,&SENSOR_task,NULL);
    if (SENSOR_pid == NIL) {
        cprintf("Error: Cannot create RealTime Workshop [SENSOR0] Task\n");
        sys_end();
    }

    task_activate(SENSOR_pid);

}