Ejemplo n.º 1
0
char* BY8001::getFirmwareVersion(){
  sendCommand(0x14);
  rxFunc(4);
  String versionReturned = receiveBuffer;
  char * fwVersion = new char[5];
  versionReturned = versionReturned.substring(0,4);
  versionReturned.toCharArray(fwVersion,5);
  return fwVersion;
}
Ejemplo n.º 2
0
char* BY8001::getFileNameCurrentTrack(){
  // delay 130ms
  unsigned long mTimer = millis(); while (millis() - mTimer < 130) {}
  sendCommand(0x1E);
  rxFunc(15);
  String nameReturned = receiveBuffer;
  char * name = new char[10];
  nameReturned = nameReturned.substring(0,15);
  if (nameReturned.endsWith("\r\n") == true) {
    nameReturned = nameReturned.substring(2,10);
  }
  else {
    nameReturned = nameReturned.substring(0,8);
  }
  nameReturned.toCharArray(name,9);
  return name;
}
Ejemplo n.º 3
0
word BY8001::getReply(int length, int offset){
  rxFunc(length);
  word value = strtoul(receiveBuffer + offset, NULL, 16);
  return value;
}
Ejemplo n.º 4
0
int main(int argc, char **argv)
{
    QCoreApplication app(argc, argv);
    QStringList args = app.arguments();
    if (args.count() > 1) {
        QTuringStateMachine machine;
        QFile file(args.at(1));
        if (file.open(QIODevice::ReadOnly)) {
            QTextStream input(&file);
            QString func;
            while (!input.atEnd()) {
                QString line = input.readLine();
                if (line.startsWith(QLatin1Char('#')))
                    continue;
                line = line.simplified();
                if (line.isEmpty())
                    continue;
                QRegExp rxFunc(QLatin1String("function ([a-zA-Z][a-zA-Z0-9]*) \\{"));
                QRegExp rxEnd(QLatin1String("\\}"));
                QRegExp rxMem(QLatin1String("memory: *([01]+)"));
                if (rxFunc.exactMatch(line)) {
                    func = rxFunc.cap(1);
                } else if (rxEnd.exactMatch(line)) {
                    qDebug() << "--------------------------------------";
                    qDebug() << "evaluating.......:" << func;
                    qDebug() << "initial machine..:" << machine;
                    machine.evaluate();
                    qDebug() << "resulting machine:" << machine;
                    machine.reset();
                } else if (rxMem.exactMatch(line)) {
                    QByteArray mem = rxMem.cap(1).toLatin1();
                    machine.setMemory(mem.constData());
                } else {
                    QByteArray instr = line.toLatin1();
                    machine << QTuringStateMachine::Instruction(instr.constData());
                }
            }
        }
    }else{
        QTuringStateMachine machine;

        // AddOne
        machine.setMemory("11");
        machine << QTuringStateMachine::Instruction("1xx1r");
        machine << QTuringStateMachine::Instruction("1bx2r");
        machine.evaluate();
        qDebug() << machine;


        // AddTwo
        machine.reset();
        machine.setMemory("11");
        machine << QTuringStateMachine::Instruction("1xx1r");
        machine << QTuringStateMachine::Instruction("1bx2r");
        machine << QTuringStateMachine::Instruction("2bx3r");
        machine.evaluate();
        qDebug() << machine;

        //Double
        machine.reset();
        machine.setMemory("1111");
        machine << QTuringStateMachine::Instruction("1xb2r");       //bbbxxbbbbbbbb
        machine << QTuringStateMachine::Instruction("2xx2r");
        machine << QTuringStateMachine::Instruction("2bb3r");
        machine << QTuringStateMachine::Instruction("3xx3r");
        machine << QTuringStateMachine::Instruction("3bx4r");
        machine << QTuringStateMachine::Instruction("4bx5l");
        machine << QTuringStateMachine::Instruction("5xx5l");
        machine << QTuringStateMachine::Instruction("5bb6l");
        machine << QTuringStateMachine::Instruction("6xx6l");
        machine << QTuringStateMachine::Instruction("6bb1r");
        machine.evaluate();
        qDebug() << machine;
    }

    return app.exit();
}