www.pudn.com > truetime-1.2-compiled.zip > sensor_init.cpp


// Distributed control system: sensor node
//
// Samples the plant periodically and sends the samples to the 
// controller node.

#define S_FUNCTION_NAME sensor_init

#include "ttkernel.cpp"

// code function
double sensor_code(int seg, void *data) {
  static double *y;
  switch (seg) {
  case 1:
    y = new double;
    *y = ttAnalogIn(1);
    return 0.0005;
  case 2:
    ttSendMsg(4, y, 10); // Send measurement (10 bytes) to node 4 (controller)
    return 0.0004;
  case 3:
    return FINISHED;
  }
}

double msgRcvhandler(int seg, void *data)
{
  printf("ERROR: sensor received a message!\n");
  return FINISHED;
}

void init()
{
  // Initialize TrueTime kernel
  ttInitKernel(1, 0, FP); // nbrOfInputs, nbrOfOutputs, fixed priority

  // Sensor task
  double offset = 0.0;
  double period = 0.010;
  double prio = 1.0;
  ttCreatePeriodicTask("sensor_task", offset, period, prio, sensor_code);

  // Initialize network
  ttCreateInterruptHandler("msgRcv", prio, msgRcvhandler);
  ttInitNetwork(3, "msgRcv"); // node #3 in the network
}


void cleanup() {
}