// python function toggle_debug() static PyObject *py_toggle_debug(PyObject *self, PyObject *args) { // toggle debug printing toggle_debug(); Py_RETURN_NONE; }
void CamaraLucida::keyPressed(ofKeyEventArgs &args) { pressed[args.key] = true; if (args.key == key.debug) { toggle_debug(); } else if (args.key == key.help) { _render_help = !_render_help; } if (!_debug) return; if (args.key == key.view_next) { renderer->next_view(); } else if (args.key == key.view_prev) { renderer->prev_view(); } else if (args.key == key.scene_reset) { renderer->reset_scene(); } else if (args.key == key.xoff_inc) { depth->change_xoff( 1 ); } else if (args.key == key.xoff_dec) { depth->change_xoff( -1 ); } };
void process_received_command() { if (receivedBytes[0] == 0) return; // parse command and arg here const char cmd = receivedBytes[0]; char* data = receivedBytes+2; if(debugMode == 1){ //Serial.print("DEBUG Handling this command: "); //Serial.println(receivedBytes); } // d - toggle debugging output // h - take a hold on the bus so the cpu doesn't get confused // l - release bus and reset the cpu // m - set rom size // o - set rom offset // p - ping // r - read address // w - write data to address // z - zero out memory switch(cmd) { case 'p': Serial.println("OK"); break; case 'z': zero_rom(); Serial.println("OK"); break; case 'o': set_rom_offset(cmd, data); Serial.println("OK"); break; case 'm': set_rom_size(cmd, data); Serial.println("OK"); break; case 'r': dump_memory_contents(cmd, data); Serial.println("OK"); break; case 'd': toggle_debug(); Serial.println("OK"); break; case 'w': parse_hex_and_write_to_mem(cmd, data); Serial.println("OK"); break; case 'h': hold_and_commandeer_bus(); Serial.println("OK"); break; case 'l': release_bus(); reset_cpu(); release_hold(); Serial.println("OK"); break; default: Serial.println("NOT OK"); break; }; clearReceivedCommand(); }
void main_loop(void *) { toggle_debug(); if (uart_available()) { PORTD |= LED_YELLOW; unsigned char ch = (unsigned char)uart_getch(); if (recv_ptr == 0) { if (ch != 0xed) { // not a sync byte } else { buf[0] = ch; recv_ptr = 1; } } else if (recv_ptr == 1) { if (ch > sizeof(buf) - 2) { // not a proper packet recv_ptr = 0; recv_end = 0; } else { buf[1] = ch; recv_end = 2 + ch; recv_ptr = 2; } } else { buf[recv_ptr] = ch; ++recv_ptr; if (recv_ptr == recv_end) { decode_packet(); recv_ptr = 0; recv_end = 0; } } PORTD &= ~LED_YELLOW; } unsigned short now = uread_timer(); unsigned short delta = now - prev; prev = now; // if this loop takes 10 milliseconds, we're already in trouble... if (delta > 10000) { delta = 10000; } //uart_force_out(((unsigned char *)&delta)[0]); //uart_force_out(((unsigned char *)&delta)[1]); unsigned char mask = 1; bool change = false; for (unsigned char i = 0; i != 6; ++i) { if (targets[i] != counts[i]) { stepphases[i] += delta; if ((steps & mask) || (stepphases[i] >= steprates[i])) { change = true; if (!(steps & mask)) { stepphases[i] -= steprates[i]; } // avoid too much accumulation of phase -- this // means a limit on slew rate if (stepphases[i] > 40000) { stepphases[i] = 40000; } steps = steps ^ mask; if ((short)(targets[i] - counts[i]) > 0) { directions |= mask; if (!(steps & mask)) { counts[i]++; } } else { directions &= ~mask; if (!(steps & mask)) { counts[i]--; } } } } mask = mask << 1; } DIR_PORT = directions; if (change) { PORTD |= LED_RED; } else { PORTD &= ~LED_RED; } blue_timeout += delta; if (blue_timeout > 2000000) { PORTD |= LED_BLUE; first = true; } after(0, main_loop, 0); STEP_PORT = steps; }