void cMotorController::InitDACOut()
{
#ifdef SENSORAY826
    int fail = S826_DacRangeWrite(PCI_BOARD, channelNum, VOLTRANGE, 0);
    if (fail == 0)
       qDebug() << "DAC" << channelNum << "init'ed";
#endif

}
static int NRCstart(uint board)
{
    uint safemode = 0;
    int errcode;

    printf("Neuromorphic Robot Control\n");

    redisContext *c = redisConnect("127.0.0.1", 6379);
    if (c == NULL || c->err) {
        if (c) {
            printf("Error: %s\n", c->errstr);
            // handle error
        } else {
            printf("Can't allocate redis context\n");
        }
    }

    X826( S826_SafeWrenWrite(board, 0) );
    X826( S826_SafeWrenWrite(board, 1) );
    X826( S826_SafeWrenWrite(board, 2) );

    X826( S826_DacRangeWrite(board, 0, S826_DAC_SPAN_5_5, safemode) );  // program dac output range: -10V to +10V
    X826( S826_DacRangeWrite(board, 1, S826_DAC_SPAN_5_5, safemode) );
    X826( S826_DacRangeWrite(board, 2, S826_DAC_SPAN_5_5, safemode) );

    while(1) {
      redisReply *y = redisCommand(c, "GET yaw");
      X826( S826_DacDataWrite(board, 2, strtoul(y->str, 0, 0), safemode) );

      redisReply *p = redisCommand(c, "GET pitch");
      X826( S826_DacDataWrite(board, 0, strtoul(p->str, 0, 0), safemode) );

      redisReply *s = redisCommand(c, "GET slider");
      X826( S826_DacDataWrite(board, 1, strtoul(s->str, 0, 0), safemode) );
    }


    return errcode;
}