Ejemplo n.º 1
0
// python function toggle_debug()
static PyObject *py_toggle_debug(PyObject *self, PyObject *args)
{
    // toggle debug printing
    toggle_debug();

    Py_RETURN_NONE;
}
Ejemplo n.º 2
0
    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 );
        }
    };
Ejemplo n.º 3
0
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();
}
Ejemplo n.º 4
0
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;
}