int serial_test_calculator() { driver_t drv = driver_get(SERIAL_0); char buffer[1]; int a = 0; int b = 0; int res = 0; drv.create(SERIAL_0); while (1) { drv.write(SERIAL_0, 32, "\n\rOttos Serial Test Calculator\n\r"); drv.write(SERIAL_0, 13, "\n\rEnter Op1:"); drv.read(SERIAL_0, 1, buffer); a = atoi(buffer); drv.write(SERIAL_0, 1, buffer); drv.write(SERIAL_0, 13, "\n\rEnter Op2:"); drv.read(SERIAL_0, 1, buffer); b = atoi(buffer); drv.write(SERIAL_0, 1, buffer); res = a + b; sprintf(buffer, "%d", res); drv.write(SERIAL_0, 23, "\n\rResult of Op1 + Op2: "); drv.write(SERIAL_0, 1, buffer); } return 0; }
/** * Richiama direttamente la funzione ioctl di un driver */ uint32_t driver_ioctl(char *drv, device_t *dev, uint32_t call, uint32_t a, uint32_t b) { driver_t *d = driver_get(drv); if(d == NULL || d->ioctl == NULL) return 0; else return d->ioctl(dev, call, a, b); }
int serial_test_write_exit_2() { int i; driver_t drv = driver_get(SERIAL_0); drv.create(SERIAL_0); drv.open(SERIAL_0); // for(i = 0; i < 310000; i++) { // if(i > 300000) { drv.write(SERIAL_0, 8, "exit_2\n\r"); // } // } drv.close(SERIAL_0); return 0; }
int serial_test_write_1() { int i; driver_t drv = driver_get(SERIAL_0); drv.create(SERIAL_0); drv.open(SERIAL_0); for(i = 0;; i++) { //if(i > 100000) { drv.write(SERIAL_0, 8, "PID: 1\n\r"); i = 0; //} } drv.close(SERIAL_0); return 0; }
/** * Elimina un driver * * \param n nome del driver da eliminare * \return stato dell'eliminazione */ uint32_t driver_del(char *n) { driver_t *m = driver_get(n); driver_t *pr = driver_list; if(m == NULL) return DRV_NF_ER; // Cerca il precedente if(m == driver_list) { driver_list = NULL; } else { while(pr != NULL && pr->next != NULL) { if(strcmp(pr->next->name, n) == 0) break; pr = pr->next; } pr->next = m->next; } }
/** * Deinizializza */ uint8_t driver_freed(char *drv) { driver_t *m = driver_get(drv); if(m == NULL) return DRV_NF_ER; if(m->loaded == 0) return DRV_NT_IN; if(m->free == 0) return DRV_NF_FR; if(m->free() == DRV_OK) { m->loaded = 0; driver_puts(m, MDRV_IN, "deinitialized"); return DRV_OK; } return DRV_ER; }
/** * Inizializza */ uint8_t driver_initd(char *drv) { driver_t *m = driver_get(drv); if(m == NULL) return DRV_NF_ER; if(m->loaded == 1) return DRV_AL_LD; if(m->init == 0) return DRV_NF_IN; if(m->init() == DRV_OK) { m->loaded = 1; driver_puts(m, MDRV_IN, "initialized"); return DRV_OK; } return DRV_ER; }
int serial_test_create(void) { serial_test_serial_test_driver = driver_get(SERIAL_0); serial_test_serial_test_driver.create(SERIAL_0); return 1; }