/**************************************************************************** * Handles an interrupt on GPIO14/15 * Parameters : Standard interrupt handler params. Not used. ****************************************************************************/ static void reciva_quad_int_handler(int irq, void *dev, struct pt_regs *regs) { int shaft_new = SHAFT_PINS; /* Work out rotation direction and let application know about it */ do_quad(); /* Note old value for next time round */ shaft_old = shaft_new; }
static void reciva_quad_int_handler(int irq, void *dev, struct pt_regs *regs) #endif { int shaft_new = SHAFT_PINS; /* Work out rotation direction and let application know about it */ do_quad(shaft_new); /* Note old value for next time round */ shaft_old = shaft_new; #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) return IRQ_HANDLED; #endif }
static void reciva_quad_int_handler(int irq, void *dev, struct pt_regs *regs) #endif { encoder_t *e = NULL; int i; for (i=0; i<MAX_ENCODERS; i++) { if (irq == encoders[i].irq_pin0 || irq == encoders[i].irq_pin1) e = &encoders[i]; } /* Work out rotation direction and let application know about it */ if (e) do_quad(e); #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) return IRQ_HANDLED; #endif }
int ged_importFg4Section(struct ged *gedp, int argc, const char *argv[]) { char *cp; char *line; char *lines; int eosFlag = 0; static const char *usage = "obj section"; GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR); GED_CHECK_READ_ONLY(gedp, GED_ERROR); GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR); /* initialize result */ bu_vls_trunc(gedp->ged_result_str, 0); /* must be wanting help */ if (argc == 1) { bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage); return GED_HELP; } if (argc != 3) { bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage); return GED_ERROR; } grid_size = GRID_BLOCK; grid_pts = (point_t *)bu_malloc(grid_size * sizeof(point_t) , "importFg4Section: grid_pts"); lines = strdup(argv[2]); cp = line = lines; FIND_NEWLINE(cp, eosFlag); bu_strlcpy(field, line+8, sizeof(field)); group_id = atoi(field); bu_strlcpy(field, line+16, sizeof(field)); comp_id = atoi(field); region_id = group_id * 1000 + comp_id; if (comp_id > 999) { bu_log("Illegal component id number %d, changed to 999\n", comp_id); comp_id = 999; } bu_strlcpy(field, line+24, sizeof(field)); mode = atoi(field); if (mode != 1 && mode != 2) { bu_log("Illegal mode (%d) for group %d component %d, using volume mode\n", mode, group_id, comp_id); mode = 2; } while (!eosFlag) { ++cp; line = cp; FIND_NEWLINE(cp, eosFlag); if (!bu_strncmp(line, "GRID", 4)) do_grid(line); else if (!bu_strncmp(line, "CTRI", 4)) do_tri(line); else if (!bu_strncmp(line, "CQUAD", 4)) do_quad(line); } make_bot_object(argv[1], gedp->ged_wdbp); free((void *)lines); bu_free((void *)grid_pts, "importFg4Section: grid_pts"); /* free memory associated with globals */ bu_free((void *)faces, "importFg4Section: faces"); bu_free((void *)thickness, "importFg4Section: thickness"); bu_free((void *)facemode, "importFg4Section: facemode"); faces = NULL; thickness = NULL; facemode = NULL; return TCL_OK; }
int wdb_importFg4Section_cmd(struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) { char *cp; char *line; char *lines; int eosFlag = 0; if (argc != 3) { struct bu_vls vls; bu_vls_init(&vls); bu_vls_printf(&vls, "helplib_alias wdb_importFg4Section %s", argv[0]); Tcl_Eval(interp, bu_vls_addr(&vls)); bu_vls_free(&vls); return TCL_ERROR; } grid_size = GRID_BLOCK; grid_pts = (point_t *)bu_malloc(grid_size * sizeof(point_t) , "importFg4Section: grid_pts"); lines = strdup(argv[2]); cp = line = lines; FIND_NEWLINE(cp, eosFlag); bu_strlcpy(field, line+8, sizeof(field)); group_id = atoi(field); bu_strlcpy(field, line+16, sizeof(field)); comp_id = atoi(field); region_id = group_id * 1000 + comp_id; if (comp_id > 999) { bu_log( "Illegal component id number %d, changed to 999\n", comp_id ); comp_id = 999; } bu_strlcpy(field, line+24, sizeof(field)); mode = atoi(field); if (mode != 1 && mode != 2) { bu_log("Illegal mode (%d) for group %d component %d, using volume mode\n", mode, group_id, comp_id); mode = 2; } while (!eosFlag) { ++cp; line = cp; FIND_NEWLINE(cp, eosFlag); if (!strncmp(line, "GRID", 4)) do_grid(line); else if (!strncmp(line, "CTRI", 4)) do_tri(line); else if (!strncmp(line, "CQUAD", 4)) do_quad(line); } make_bot_object(argv[1], wdbp); free((void *)lines); bu_free((void *)grid_pts, "importFg4Section: grid_pts"); /* free memory associated with globals */ bu_free((void *)faces, "importFg4Section: faces"); bu_free((void *)thickness, "importFg4Section: thickness"); bu_free((void *)facemode, "importFg4Section: facemode"); faces = NULL; thickness = NULL; facemode = NULL; return TCL_OK; }