⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mdump.cpp

📁 csta协议的开发
💻 CPP
字号:

#include "stdafx.h"
#include "acs.h"
#include "csta.h"

FILE *fp;

void  mdump (unsigned char *buffer)
{
#define SIZE_OF_LINE 16
  unsigned char temp[16]; 
        int s;
  int i;
  int j = 0;
  int k;  


  s = 300;

  if ((fp = fopen("cldump.txt", "at+")) != NULL) {
    fprintf (fp,"Message recu\n");
    fprintf (fp, "ACS Handle : %d\n", (ACSHandle_t) buffer [0]);
    if ((EventClass_t) buffer [2] == ACSREQUEST ||
      (EventClass_t) buffer [2] == ACSUNSOLICITED ||
        (EventClass_t) buffer [2] == ACSCONFIRMATION) {
      fprintf (fp, "Event Class : ");
      switch ((EventClass_t) buffer [2]) {
        case ACSREQUEST :
          fprintf (fp, "ACS REQUEST\n");
          break;
        case ACSUNSOLICITED :
          fprintf (fp, "ACS UNSOLICITED\n");
          break;
        case ACSCONFIRMATION :
          fprintf (fp, "ACS CONFIRMATION\n");
          break;
      }
      fprintf (fp, "Event Type : ");
      switch ((EventType_t) buffer [4]) {
        case ACS_OPEN_STREAM :
        fprintf (fp, "ACS OPEN STREAM\n");
        break;
      case ACS_OPEN_STREAM_CONF :
        fprintf (fp, "ACS OPEN STREAM CONFIRMATION\n");
        break;
      case ACS_CLOSE_STREAM :
        fprintf (fp, "ACS CLOSE STREAM\n");
        break;
      case ACS_CLOSE_STREAM_CONF :
        fprintf (fp, "ACS CLOSE STREAM CONFIRMATION\n");
        break;
      case ACS_ABORT_STREAM :
        fprintf (fp, "ACS ABORT STREAM\n");
        break;
      case ACS_UNIVERSAL_FAILURE_CONF :
        fprintf (fp, "ACS UNIVERSAL FAILURE CONF\n");
        break;
      case ACS_UNIVERSAL_FAILURE :
        fprintf (fp, "ACS UNIVERSAL FAILURE\n");
        break;
      case ACS_KEY_REQUEST :
        fprintf (fp, "ACS KEY REQUEST\n");
        break;
      case ACS_KEY_REPLY :
        fprintf (fp, "ACS KEY REPLY\n");
        break;
      default :
        fprintf (fp, "%d\n", (EventType_t) buffer [4]);
        break;
    }
  }
  else {
    if ((EventClass_t) buffer [2] == CSTAREQUEST ||
        (EventClass_t) buffer [2] == CSTAUNSOLICITED ||
          (EventClass_t) buffer [2] == CSTACONFIRMATION ||
            (EventClass_t) buffer [2] == CSTAEVENTREPORT) {
      fprintf (fp, "Event Class : ");
      switch ((EventClass_t) buffer [2]) {
        case CSTAREQUEST :
          fprintf (fp, "CSTA REQUEST\n");
          break;
        case CSTAUNSOLICITED :
          fprintf (fp, "CSTA UNSOLICITED\n");
          break;
        case CSTACONFIRMATION :
          fprintf (fp, "CSTA CONFIRMATION\n");
          break;
        case CSTAEVENTREPORT :
          fprintf (fp, "CSTA EVENT REPORT\n");
          break;
      }
      fprintf (fp, "Event Type : ");
      switch ((EventType_t) buffer [4]) {
        case CSTA_ALTERNATE_CALL :
          fprintf (fp, "CSTA ALTERNATE CALL\n");
          break;
        case CSTA_ALTERNATE_CALL_CONF :
          fprintf (fp, "CSTA ALTERNATE CALL CONFIRMATION\n");
          break;
        case CSTA_ANSWER_CALL :
          fprintf (fp, "CSTA ANSWER CALL\n");
          break;                                          
        case CSTA_ANSWER_CALL_CONF :
          fprintf (fp, "CSTA ANSWER CALL CONF\n");
          break;
        default :
          fprintf (fp, "%d\n", (EventType_t) buffer [4]);
          break;
      }
    }
    else {
      fprintf (fp, "Event Class : %d\n", (EventClass_t) buffer [2]);
      fprintf (fp, "Event Type : %d\n", (EventType_t) buffer [4]);
    }
  }

  if (s == 0 ) return;

  for ( ; ; ) {
    i = 0;
    fprintf(fp,"%04x %04x    ",(unsigned int) &buffer[j],j);
    while (i != SIZE_OF_LINE && j != s) {
      temp[i++] = buffer[j++];
      fprintf(fp,"%02x ",temp[i-1]);
    }
    k = (SIZE_OF_LINE -i)*3 +4;
    while (k--) fprintf(fp," ");
    k = 0;
    while ( k < i ) {
      if (temp[k] >= ' ' && temp[k] <= '~' ) fprintf(fp,"%c", temp[k]);
      else fprintf(fp,".");
      k += 1;
    }
    fprintf(fp,"\n");
    if ( j == s ) break; 
      
  }                              
  fprintf(fp,"\n");
  fclose (fp);
  }
  return ;
#undef SIZE_OF_LINE
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -