Example #1
0
int main()
{
    Datagram dg;
    Serial_t serialConfig;

    t=0;

    serialConfig.baud_rate = 9600;
    serialConfig.bits = 8;
    serialConfig.parity = 0;
    serialConfig.stop_bits = 1;
    serialConfig.device = "ttyUSB0";

    serial.setConfig(serialConfig);
    if (serial.connect() == -1) {
        qDebug() << "Serial connection error!";
        exit(1);
    }
    qDebug() << "Serial connected!";

    qDebug() << "Ping...";
    ping();
    qDebug() << "DONE";

    bool remain = true;
    while (remain) {
        qDebug() << "Inquiry or ok?";
        receiveDatagram(&serial, &dg);
        switch (dg.type) {
        case REQUEST:
            switch (dg.id) {
            case INQUIRY:
                qDebug() << "Inquiry Request...";
                inquiry();
                qDebug() << "DONE";
                break;
            default:
                qDebug() << "Unknown";
                break;
            }
            break;
        case RESPONSE:
            switch (dg.id) {
            case OK:
                qDebug() << "OK";
                remain = false;
                break;
            default:
                qDebug() << "Unknown";
                break;
            }
            break;
        default:
            qDebug() << "Unknown";
            break;
        }
    }

    receiveDatagram(&serial, &dg);
    if (dg.type != REQUEST || dg.id != CONNECT_TO) {
        qDebug() << "Expected connection!";
        qDebug() << "QUIT";
        exit(1);
    }

    qDebug() << "Connecting to: " << *dg.data;
    sendDatagram(&serial, RESPONSE, SUCCESS);
    qDebug() << "DONE";

    loop();
    return 0;
}