int main() { int i; char buffer[200]; size_t dummy_size_t; setupHandlers(); FILE *p = popen("echo Hallo World", "r"); while (!feof(p)) { int n = fread(buffer, 200, 1, p); dummy_size_t = write(2, buffer, n); } fclose(p); for (i = 0; i < 1000000; i++) ; return 0; }
SignalManager::SignalManager(QGuiApplication* app) : QObject(NULL), m_app(app) { if (setupHandlers()) { QLOG_ERROR() << "Failed to install SignalDaemon handlers."; } QLOG_DEBUG() << "Signal handlers installed successfully."; if (socketpair(AF_UNIX, SOCK_STREAM, 0, SignalManager::sigtermFd)) { QLOG_ERROR() << "Couldn't create TERM socketpair"; } snTerm = new QSocketNotifier(SignalManager::sigtermFd[1], QSocketNotifier::Read, this); connect(snTerm, SIGNAL(activated(int)), this, SLOT(handleSignal())); }
int main(void) { glm::mat3 sphereToCard; if (!loadMatrix("rotation.calibration", sphereToCard)) { std::cerr << "Warning: could not found rotation calibration" << std::endl; } if (!leds.initialize()) { std::cerr << "Failed to initialize leds" << std::endl; return -1; } GY85 gy85; if (!gy85.initialize()) { std::cerr << "Failed to initialize GY-85" << std::endl; return -1; } Timer timer; if (!timer.initialize()) { std::cerr << "Failed to initialize timer" << std::endl; return -1; } setupHandlers(); Mode mode(leds); if (!mode.loadScript()) { std::cerr << "Failed to load script" << std::endl; return -1; } for (;;) { float dt = timer.getElapsedTime(); gy85.update(dt); glm::vec3 accelerometer; gy85.getAccelerometer(accelerometer); glm::vec3 compass; gy85.getCompass(compass); glm::mat3 worldToCard; computeToWorldMatrix(accelerometer, compass, worldToCard); glm::mat3 cardToWorld = glm::inverse(worldToCard); glm::mat3 sphereToWorld = cardToWorld * sphereToCard; leds.updateWorldPositions(sphereToWorld); leds.clear(); if (mode.update(dt)) { leds.render(); } else { usleep(100000); } } return 0; }
static int gConfigure(int gFile) { CHECK(ITG3200_Init(gFile, ITG3200_ID, true)); struct ITG3200_Acquisition confAcquisition = { .lowPassFilter = ITG3200_LOWPASSFILTER_42, .sampleRateDivider = 0, }; CHECK(ITG3200_ConfigureAcquisition(gFile, &confAcquisition)); struct ITG3200_Power confPower = { .clockSource = ITG3200_CLOCKSOURCE_PLL_X, }; CHECK(ITG3200_ConfigurePower(gFile, &confPower)); return 0; } int main(void) { int adapter; char filename[20]; for (adapter = 0; adapter < MAX_ADAPTERS; ++adapter) { snprintf(filename, 20, "/dev/i2c-%d", adapter); if (!access(filename, R_OK | W_OK)) break; } if (adapter == MAX_ADAPTERS) { fprintf(stderr, "No I2C adapter found\n"); return -1; } aFile = open(filename, O_RDWR); if (aConfigure(aFile)) { fprintf(stderr, "Failed to initialize accelerometer\n"); return closeAndExit(-1); } cFile = open(filename, O_RDWR); if (cConfigure(cFile)) { fprintf(stderr, "Failed to initialize compass\n"); return closeAndExit(-1); } gFile = open(filename, O_RDWR); if (gConfigure(gFile)) { fprintf(stderr, "Failed to initialize gyroscope\n"); return closeAndExit(-1); } ADXL345_ReadData(aFile, &aX.data, &aY.data, &aZ.data); HMC5883L_ReadData(cFile, &cX.data, &cY.data, &cZ.data); ITG3200_ReadData(gFile, &gX.data, &gY.data, &gZ.data); ITG3200_ReadTemperature(gFile, &gT.data); initCoordinate(&aX); initCoordinate(&aY); initCoordinate(&aZ); initCoordinate(&cX); initCoordinate(&cY); initCoordinate(&cZ); initCoordinate(&gX); initCoordinate(&gY); initCoordinate(&gZ); initCoordinate(&gT); setupHandlers(); initscr(); noecho(); curs_set(false); running = 1; while (running) { ADXL345_ReadData(aFile, &aX.data, &aY.data, &aZ.data); HMC5883L_ReadData(cFile, &cX.data, &cY.data, &cZ.data); ITG3200_ReadData(gFile, &gX.data, &gY.data, &gZ.data); ITG3200_ReadTemperature(gFile, &gT.data); updateCoordinate(&aX); updateCoordinate(&aY); updateCoordinate(&aZ); updateCoordinate(&cX); updateCoordinate(&cY); updateCoordinate(&cZ); updateCoordinate(&gX); updateCoordinate(&gY); updateCoordinate(&gZ); updateCoordinate(&gT); clear(); mvprintw(0, 0, "%16s: %8d X %8d Y %8d Z\n", "Accelerometer", aX.data, aY.data, aZ.data); mvprintw(1, 0, "%16s: %8.1f X %8.1f Y %8.1f Z\n", "Smoothed", aX.smoothed, aY.smoothed, aZ.smoothed); mvprintw(2, 0, "%16s: %8.1f X %8.1f Y %8.1f Z\n", "Min", aX.min, aY.min, aZ.min); mvprintw(3, 0, "%16s: %8.1f X %8.1f Y %8.1f Z\n", "Max", aX.max, aY.max, aZ.max); mvprintw(4, 0, "%16s: %8.1f X %8.1f Y %8.1f Z\n", "Normalized", aX.normalized, aY.normalized, aZ.normalized); mvprintw(6, 0, "%16s: %8d X %8d Y %8d Z\n", "Compass", cX.data, cY.data, cZ.data); mvprintw(7, 0, "%16s: %8.1f X %8.1f Y %8.1f Z\n", "Smoothed", cX.smoothed, cY.smoothed, cZ.smoothed); mvprintw(8, 0, "%16s: %8.1f X %8.1f Y %8.1f Z\n", "Min", cX.min, cY.min, cZ.min); mvprintw(9, 0, "%16s: %8.1f X %8.1f Y %8.1f Z\n", "Max", cX.max, cY.max, cZ.max); mvprintw(10, 0, "%16s: %8.1f X %8.1f Y %8.1f Z\n", "Normalized", cX.normalized, cY.normalized, cZ.normalized); mvprintw(12, 0, "%16s: %8d X %8d Y %8d Z\n", "Gyroscope", gX.data, gY.data, gZ.data); mvprintw(13, 0, "%16s: %8.1f X %8.1f Y %8.1f Z\n", "Smoothed", gX.smoothed, gY.smoothed, gZ.smoothed); mvprintw(14, 0, "%16s: %8.1f X %8.1f Y %8.1f Z\n", "Min", gX.min, gY.min, gZ.min); mvprintw(15, 0, "%16s: %8.1f X %8.1f Y %8.1f Z\n", "Max", gX.max, gY.max, gZ.max); mvprintw(16, 0, "%16s: %8.1f X %8.1f Y %8.1f Z\n", "Normalized", gX.normalized, gY.normalized, gZ.normalized); mvprintw(18, 0, "%16s: %8d %8.1f °C\n", "Temperature", gT.data, ITG3200_ConvertTemperature(gT.data)); mvprintw(19, 0, "%16s: %8.1f %8.1f °C\n", "Smoothed", gT.smoothed, ITG3200_ConvertTemperature(gT.smoothed)); mvprintw(20, 0, "%16s: %8.1f %8.1f °C\n", "Min", gT.min, ITG3200_ConvertTemperature(gT.min)); mvprintw(21, 0, "%16s: %8.1f %8.1f °C\n", "Max", gT.max, ITG3200_ConvertTemperature(gT.max)); mvprintw(22, 0, "%16s: %8.1f\n", "Normalized", gT.normalized); refresh(); usleep(DELAY); } endwin(); close(aFile); close(cFile); close(gFile); return 0; }
Parser::Parser(TokenStream& tokens, DataHandler& data) : ts(tokens), current(), data_handler(data), handlers(), program(new Ast::Block(&data)) { setupHandlers(); }