Ejemplo n.º 1
0
void EnetClient::HandleRecvedMsg(const msg_ptr_t& msg)
{
    if (msg->size() != test_msg_size_)
    {
        std::cout << "recv wrong msg size: " << msg->size() << std::endl << *msg << std::endl;
        loop_running_ = false;
        return;
    }

    // good test msg.
    //

    // log
    //
    uint64_t send_time = get_time_from_msg(*msg);
    uint64_t cur_time = iclock64();

    static uint64_t static_last_refresh_time = 0;
    static size_t static_recved_bytes = 0;
    static_recved_bytes += msg->size();

    {
        static size_t static_good_recv_count = 0;

        static_good_recv_count++;

        uint64_t interval = cur_time - send_time;
        recv_package_interval_.push_back(interval);
        recv_package_interval10_.push_back(interval);
        std::cout << interval << "\t";

        if (static_good_recv_count % 10 == 0)
        {
            int average10 = 0;
            for (int x : recv_package_interval10_)
                average10 += x;
            average10 = (average10 / 10);

            int average_total = 0;
            for (int x: recv_package_interval_)
                average_total += x;
            average_total = average_total / recv_package_interval_.size();

            std::cout << "max: " << *std::max_element( recv_package_interval10_.begin(), recv_package_interval10_.end() ) <<
                "  average 10: " << average10 <<
                "  average total: " << average_total;
            if (cur_time - static_last_refresh_time > 10 * 1000)
            {
                std::cout << " " << static_cast<double>(static_recved_bytes * 10 / (cur_time - static_last_refresh_time)) / 10 << "KB/s(in)";
                static_last_refresh_time = cur_time;
                static_recved_bytes = 0;
            }
            std::cout << std::endl;
            std::cout << get_cur_time_str() << " ";
            recv_package_interval10_.clear();
        }
        std::cout.flush();
    }
}
Ejemplo n.º 2
0
//==============================================================================
void log_add(int log_type, const char *message)
{
  #ifndef DEMS_DEVICE
  pthread_mutex_lock(&mutex_log);
  #endif

  #ifndef DEBUG_MODE
  if(log_type == LOG_DEBUG)
    goto exit;
  #endif

  #ifndef USE_EXTRA_LOGS
    if(log_type == LOG_EXTRA)
      goto exit;
  #endif

  #ifndef USE_WAIT_LOGS
    if(log_type == LOG_WAIT)
      goto exit;
  #endif

  const char *log_type_str = log_type_to_string(log_type);

  if(
     (log_type == LOG_INFO)
     ||
     (log_type == LOG_CMD)
     ||
     (log_type == LOG_NO_IDENT)
     #ifndef SILENT_MODE
     || (log_type >= LOG_ERROR_CRITICAL)
     #endif
    )
    printf("%s%s\n", log_type_str, message);

  char full_file_name[256];
  char file_name[64];
  log_gen_name(LOG_NAME_DATE_S, log_prefix, file_name);
  sprintf(full_file_name, "%s/%s", log_path, file_name);

  make_dir(log_path);

  if(log_enable)
  {
    FILE *log = fopen(full_file_name, "a");
    if(log != NULL)
    {
      char time_str[16];
      get_cur_time_str(time_str, LOG_LONG_FORMAT);

      fprintf(log, "%s %s%s\n", time_str, log_type_str, message);

      fclose(log);
    }
    else
      printf("[WARNING] Can not open log file, %s\n", full_file_name);
  }

  exit:
  #ifndef DEMS_DEVICE
  pthread_mutex_unlock(&mutex_log);
  #endif
  return;
}
Ejemplo n.º 3
0
//==============================================================================
void log_gen_name(log_time_tag_t time_tag, const char *name, char *result)
{
  switch(time_tag)
  {
    case LOG_NAME_DATE:
    {
      char date_str[16];
      get_cur_date_str(date_str, LOG_LONG_FORMAT);
      sprintf(result, "%s_%s", date_str, name);
      break;
    }

    case LOG_NAME_DATE_S:
    {
      char date_str[16];
      get_cur_date_str(date_str, LOG_SHORT_FORMAT);
      sprintf(result, "%s_%s", date_str, name);
      break;
    }

    case LOG_NAME_TIME:
    {
      char time_str[16];
      get_cur_time_str(time_str, LOG_LONG_FORMAT);
      sprintf(result, "%s_%s", time_str, name);
      break;
    }

    case LOG_NAME_TIME_S:
    {
      char time_str[16];
      get_cur_time_str(time_str, LOG_SHORT_FORMAT);
      sprintf(result, "%s_%s", time_str, name);
      break;
    }

    case LOG_NAME_DATE_TIME:
    {
      char date_str[16];
      get_cur_date_str(date_str, LOG_LONG_FORMAT);
      char time_str[16];
      get_cur_time_str(time_str, LOG_LONG_FORMAT);
      sprintf(result, "%s_%s_%s", date_str, time_str, name);
      break;
    }

    case LOG_NAME_DATE_TIME_S:
    {
      char date_str[16];
      get_cur_date_str(date_str, LOG_SHORT_FORMAT);
      char time_str[16];
      get_cur_time_str(time_str, LOG_SHORT_FORMAT);
      sprintf(result, "%s_%s_%s", date_str, time_str, name);
      break;
    }

    case LOG_NAME_ONLY:
    default:
    {
      sprintf(result, "%s", name);
      break;
    }
  }
}