Exemplo n.º 1
0
size_t i2c::command(uint8_t slaveaddr,
                    uint8_t cmd,
                    const uint8_t* data_addr,
                    size_t data_size)
{
    reset_txfer_done();
    set_slave_address(slaveaddr);
    set_data_len(1 + data_size);
    initiate_write();
    write_byte(cmd);
    size_t bytes_sent=1;
    while (data_size>0)
    {
        if (write_byte(*data_addr))
        {
            data_addr++;
            data_size--;
            bytes_sent++;
        }
        // TODO check for error conditions
    }
    wait_for_done();
    clear_fifo();
    return bytes_sent;
}
Exemplo n.º 2
0
int main(int argc, char** argv)
{
  if(argc != 2 && argc != 3){
    fputs("pingtalk <host/ip>\n", stderr);
    fputs("pingtalk <host/ip> <data_size>\n", stderr);
    
    return 1;
  }
  
  if(argc >= 3)
    set_data_len(atoi(argv[2]));
  
  const char* hostname = argv[1];
  
  PingTalk me(hostname, -1);
  
  me.main();
  
  return 0;
}
Exemplo n.º 3
0
size_t i2c::query(uint8_t slaveaddr,
                  uint8_t slave_register,
                  uint8_t* buffer,
                  size_t buffer_size)
{
    enum { READ_MULTIPLE=0x080 };
    command(slaveaddr, slave_register | READ_MULTIPLE);
    set_data_len(buffer_size);
    initiate_read();
    size_t bytes_read=0;
    while (buffer_size > 0)
    {
        if (read_byte(*buffer))
        {
            buffer_size--;
            bytes_read++;
            buffer++;
        }
        // TODO check for error conditions
    }
    clear_fifo();
    return bytes_read;
}
Exemplo n.º 4
0
static int
set_string(CComPtr<IMSAdminBase> pIMeta, METADATA_HANDLE MyHandle, TCHAR *path, int code, char *data)
{
	return set_data_len(pIMeta, MyHandle, path, code, IIS_MD_UT_FILE, data, strlen(data) + 1);
}
Exemplo n.º 5
0
static int
set_data(CComPtr<IMSAdminBase> pIMeta, METADATA_HANDLE MyHandle, TCHAR *path, int code, int type, 
		char *data)
{
	return set_data_len(pIMeta, MyHandle, path, code, type, data, strlen(data) + 1);
}
Exemplo n.º 6
0
bool
PacketInputStream::receive_packet()
{
  juint len, id;
  int bytes_avail;
  unsigned char uc;
  SETUP_ERROR_CHECKER_ARG;

  Transport::transport_op_def_t *ops = _transport_ops;

  bytes_avail = ops->peek_bytes(&_transport, &len, sizeof(len));
  if (bytes_avail < sizeof(len)) {
    // Try later, not enough bytes to get the packet length
    return false;
  }
  len = JAVA_TO_HOST_INT(len);
  if (len < JDWP_HEADER_SIZE) {
    return false;
  }
  if (len > JDWP_HEADER_SIZE) {
    SAVE_CURRENT_EXCEPTION;
    _input_data = PacketStream::get_buffer(len - JDWP_HEADER_SIZE JVM_NO_CHECK);
    RESTORE_CURRENT_EXCEPTION;
    if (_input_data.is_null()) {
      // not enough memory for this packet buffer
      flush_and_send_oom(ops);
      return false;
    }
  }
  ops->read_int(&_transport, &len);
  len = JAVA_TO_HOST_INT(len);
  if (len < JDWP_HEADER_SIZE) {
    flush(ops);
    return false;
  }
  set_data_len(len - JDWP_HEADER_SIZE);
  ops->read_int(&_transport, &id);
  id = JAVA_TO_HOST_INT(id);
  set_id(id);

  ops->read_bytes(&_transport, &uc, sizeof(uc), true);
  set_flags(uc);
  if (flags() & FLAGS_REPLY) {
    short error_code;
    ops->read_short(&_transport, &error_code);
    error_code = JAVA_TO_HOST_SHORT(error_code);
    set_error(error_code);
  } else {
    ops->read_bytes(&_transport, &uc, sizeof(uc), true);
    set_cmd_set(uc);
    ops->read_bytes(&_transport, &uc, sizeof(uc), true);
    set_cmd(uc);
  }
  if (len > JDWP_HEADER_SIZE) {
    // read in the whole packet
    ops->read_bytes(&_transport, _input_data.base_address(),
                    len - JDWP_HEADER_SIZE, true);
  }
 _output_index = 0;
  return true;
}