Search

'분류 전체보기'에 해당되는 글 113건

  1. 2011.11.14 RTCP-SR 에서 ntp timestamp
  2. 2011.09.26 typedef...
  3. 2011.09.05 공채할인 계산
  4. 2011.09.05 자동차 등록 인터넷

RTCP-SR 에서 ntp timestamp

Program RFC/Algorithm 2011. 11. 14. 15:11 Posted by HisPark

RTSP 영상 및 음성전송의 QoS 보장을 위한 RTCP 프로토콜 중에서 SR에서 ntp 가져오기

struct T_RTCP_HEADER {
struct {
unsigned char RC : 5;
unsigned char padding : 1;
unsigned char version : 2;
};
unsigned char PT; //SR=200 SDES=202
unsigned short length;
};
struct T_RTCP_SR {
unsigned int SSRC;
nsigned int NTP_MSW;
nsigned int NTP_LSW;
nsigned int time_stamp;
nsigned int SPC;
nsigned int SOC;
};

char *p = packet;

T_RTCP_HEADER *header = (T_RTCP_HEADER *)p;

p+=sizeof(T_RTCP_HEADER);

if (header->PT = 200) //SR
{
T_RTCP_SR *sr = (T_RTCP_SR *)p;
DWORD msw = htonl(sr->NTP_MSW);
DWORD lsw = htonl(sr->NTP_LSW);

/* AXIS 비디오서버는 1940/1/1 기준이다. 비표준인가?*/
m_dwLocalTime = ( msw - 2208988800 /* 1900/1/1 기준 */ );

p+=sizeof(T_RTCP_SR);
}

RTCP에서 ntp는 1900/1/1 기준으로 계산 됨

일반 PC는 1970/1/1 기준으로 되 있기 때문에 시간을 계산하기 위해서는 70년의 차이 값(2208988800 sec)을 빼주어야 함

'Program RFC/Algorithm' 카테고리의 다른 글

홀펀칭 화상통화...등등  (0) 2012.01.04
Hole Punching  (0) 2011.08.31
Hole Puching  (0) 2011.08.31

typedef...

Program C/C++ 2011. 9. 26. 15:12 Posted by HisPark

먼저 typedef struct 지시어에 대해 먼저 논해보자.

<typedef>

typedef unsigned int UINT

// 구문은 unsigned int 자료형을 UINT 쓰겠다는 의미임

.

.

unsigned int i;

UINT i;

//위의 선언을 같은 결과를 가져온다.

함수 포인터의 재정의로도 사용된다.

typedef int (*funcptr) ();

//funcptr 리턴값이 int이고,매개인자가 없는 함수포인터로 선언

.

.

funcptr myfunction[10];

int (*myfunction[10])();

//같은 결과를 가져옴..

<struct>

struct MY_struct {

int a;

int b;

};

//구조체 선언을 나타내는 지시어 struct, MY_struct 구조체의 이름.

// a, b 멤버 데이터이며, 이를 묶어주는 중괄호로 구성되며, 구조체 선언끝에 ; 명시

함수의 선언에서 {} 의미는 메인메모리로 부터 스택영역을 할당받는 역할을 수행하지만, 구조체 선언에서 사용되는 {} 메인메모리에 아무런 영향을 미치지 않는다. 따라서 후자를 구분하기 위해 ; 구조체 선언끝에 명시한다.

구조체의 객체 생성은 다음과 같다.

1.

struct MY_struct {

int a;

int b;

};

struct MY_struct A1, *pA2;

//C compiler에서는 객체 생성시 struct지시어를 반드시 명기해야 하고, C++ compiler에서는 생략해도 C++ complier 알아서 My_struct 사용자 정의 데이터형으로 인식하여 객체를 선언해줌.

//좀더 자세히 설명하면, C complier 변수선언이 가능한 키워드(int , char , float ,void )로만 시작할때 변수선언이 가능합니다. 사용자 정의 변수형(enum, union, struct) 경우 그냥 선언한 이름만 사용할 경우 컴파일러는 변수 선언을 인식하지 못한다. 따라서 C complier에게 사용자 정의 변수형이라는 것을 알려주기 위해 사용자 정의 변수형 이름앞에 지시어를 적어줘야 .

// 구조체의 객체중 A1 정적 객체로 선언, pA2 포인터 객체로 선언.

2.

struct MY_struct {

int a;

int b;

}A1, *pA2;

이상으로 간단하게 typedef struct 지시어에 대해 간단히 알아보았다.

그럼 이제 본격적으로 typedef struct 같이 사용할때의 경우를 알아보자.

앞에서도 언급했지만, 사용자 정의 데이터형을 선언할때 매번 지시어(enum, struct, union) 적어주는 일은 많이 번거롭다. C complier에서는 사용자 정의 타입 이름도 typedef 재정의가 가능하게 허용하였다.

typedef 사용하여 재정의한 사용자 정의 데이터형의 예를 보면,.....

typedef struct __MY_struct{

int a;

int b;

}MY_struct, *pMY_struct;

// 구문에서 __MY_struct 구조체의 이름, a, b 맴버 데이터, MY_struct *pMY_struct 선언한 구조체를 정의한 데이형을 MY_struct *pMY_struct 제선언.

.

.

1.

struct __MY_struct A1, *pA2;

2.

MY_struct A1;

pMY_struct pA2;

//1에서 선언한 것과 2에서 선언한 것은 같은 결과를 가져온다.

//2처럼 사용할 경우 앞에 struct라는 지시어를 사용하지 않고 바로 사용 가능

//보통 C에서는 이런식으로 사용하기 때문에 구조체의 이름은 사용하지 않는 이름으로 정의하고 재정의되는 이름을 알아보기 편한 이름으로 정의한다.

참고적으로, 위에서 선언한 경우는 정석적인 사용이며, 오사용및 변칙사용의 예를 들어 들어 보면....

1.
typedef struct {
int a;
int b;
}MY;


2.
struct MY{
int a;
int b;
};

3.

typedef struct MY{
int a;
int b;
};

1 2 경우는 C++ 에서는 같은 동작을 합니다. 하지만, C에서는 다름 결과를 냅니다.

1에서는 이름없는 구조체가 생성이 되고, 구조체를 사용하기 위한 새로운 자료형이름으로 MY 등록이 됩니다.

2에서는 단지 MY라는 구조체가 생성이됩니다.

따라서 C에서는 다음과 같이 사용해야 합니다.

<1 경우>

MY A1;

<2 경우>

struct MY A1;

3 경우는 에러 발생(경우에 따라서는 warning 뜬다고 합니다.) 사용자의 의도와는 다른 방향으로 컴파일 됩니다.

typedef 경우는 두개의 인자가 필요합니다. 앞의 인자는 컴파일러가 기존에 알고있는 지시어, 뒤에있는 인자는 사용자가 새롭게 정의할 이름입니다.

3 경우는 2번째 인자가 없는 형태이므로 에러가 발생하거나, 그냥 구조체의 이름이 MY 구조체만 생성하게 됩니다.

-이상-

[출처]typedef & struct|작성자kri7001

1. typedef 키워드

- 구조체는 분명히 자료형 입니다.

하지만 우리는 평소에 구조체를 선언해 struct ~~~~ , struct ~~~~ 계속 적어주었습니다.

int자료형은 int 적어주면 되는데, 구조체는 struct 줘야 하는 걸까요?

이럴 경우 소스에 오타가 발생할 경우가 생기고,

또한 귀찮기도 하고, 가독성에도 약간의 문제가 생깁니다.

따라서 struct 없애 있는 키워드가 바로 typedef키워드입니다.

typedef 기본형은 이렇습니다.

typedef double DOUBLE

이것이 무엇을 의미하는 것이냐면

double이라는 자료형에게 DOUBLE이라는 새로운 이름을 지어주는 것입니다.

컴파일러에 실제로 DOUBLE 보시면 double자료형으로 인식하지 못함을 있는데요.

문구만 적어주면 DOUBLE double자료형으로 인식하게 만들어 있습니다.

DOUBLE i=90.2;

따위의 선언이 가능하다는 말이지요.

쉽게 말해서 '컴파일러야~! 이것을~(double) 이것으로(DOUBLE) 생각하려무나(typedef)'

정리해 있습니다.

정말 완벽한 문장이네요.

[만약에 일반공부처럼 C언어공부도 개념정리노트를 만든다고 한다면

문장은 별표 3 붙이고 색깔 분류해놓고 적어놓고 싶네요.]

문장에서 정의한 것을 토대로 한번 구조체도 이런 형식으로 만들어 보겠습니다.

typedefstruct pointer pointer;

'컴파일러야~! struct pointer pointer 생각하려무나'

사용할 있겠습니다.

또한 방법 외에도

typedef struct pointer

{

int i ......

int z.......

}pointer;

형식으로도 제시해 있습니다.

[출처][베리군의C강좌] 19. 구조체 - (5) struct를 지워보자.|작성자베리군

typedef struct 쓰는 이유는

자료명 사용의 용이성(?) 이라고 볼수 있죠

예를 들어 struct card 만들었을경우 구조형을 쓸때마다

struct card 라고 해줘야 하는 반면

이것을 typedef struct card {..... } CARD 선언했을경우

CARD 라고만 해주면 되기 때문이죠

언어 표준만을 지원하는 컴파일러는 위와 같은 구문은 컴파일시 에러나 워닝을 냅니다. 그래서 그와 같은 컴파일러에서는 구조체를 typedef 타입이름으로 선언하더라도, 임시로 사용할 태그 이름이 필요하게 됩니다. 따라서, 이와 같은 컴파일러에서는 다음과 같이 임시 태그 이름을 사용하여 typedef 타입 이름을 선언해야 합니다. (물론, 번거롭긴 하지만 표준과 일치하는 방법입니다.)

typedef struct _tagPoint{
int x;
int y;
}POINT;

이와 같은 구문은, 어떤 컴파일러를 쓰더라도 정확히 동일한 결과를 내므로 안전한 기법이라고 있겠습니다.

'Program C/C++' 카테고리의 다른 글

Class 내부 Thread basic...  (1) 2013.05.10
c 표준 함수들  (0) 2011.06.24
문자열 타입 변환 | C &amp; C++  (0) 2010.10.13
C++의 다양한 string 타입 | C &amp; C++  (0) 2010.01.30
About String  (0) 2005.08.05

공채할인 계산

Knowledge General 2011. 9. 5. 11:02 Posted by HisPark
     
 

  

← 노랑색 칸만 숫자를 기입해 주시면 나머진 자동으로 계산됩니다.

     
     
 

차량기본가격

31,120,000

  
 

선택사양가격1

3,070,000

썬루프등 옵션 추가 가격

 

선택사양가격2

  

  
 

선택사양가격3

  

  
 

색상 / 탁송료

108,000

  
     
 

채권 매입액(율)

12%

http://www.cartok.com/?dir=cartax&job=tax&tab=gongchae 사이트에서 확인 후 기입

    

ex) 비사업용 차량으로 '경기도' yf소나타(2000cc 미만차량)일 경우.. 8% 임으로.. 숫자 8을 기입하세요.

     
 

공채 매입액은..

3,741,600

  
     
 

소액신고시장가격

9,237

http://www.krx.co.kr/por_kor/m5/m5_2/m5_2_4/m5_2_4_1/JHPKOR05002_04_01.jsp 사이트에서 확인 후 기입

    

1. 사이트 접속해서 "조회일자"를 선택 후 "조회"를 클릭합니다.

    

2. 해당 일자의 각 지방별 "당월물"의 "신고가격(원)"을 확인 후 기입하세요.

     
 

할인율은..

7.63%

  
     
     
 

내 차 가격에 대한
공채 할인 비용은..

285,484

  
     
 

이 계산공식은 2010년 11월 5일 만들어졌습니다.

  

'Knowledge General' 카테고리의 다른 글

손연재 에어컨 모델별 구별법  (0) 2012.10.09
Hennesy 알아보기  (0) 2012.01.09
KBCard  (0) 2011.12.07
자동차 등록 인터넷  (0) 2011.09.05
경조사비?!  (0) 2011.07.25

자동차 등록 인터넷

Knowledge General 2011. 9. 5. 11:00 Posted by HisPark

: 이번에 차량을 구입하고 인터넷으로 차량등록을 해본 1인입니다.

과정을 안해보신 신규차량 등록차량 회원들을 위해 한번 글을 써볼까 합니다.

1. 처음으로 차량을 임시번호판 상태로 받으셨다면

차량제작증, 임시차량운행증, 세금계산서 라는 종이를 받으셨을껍니다.

3장의 종이가 가장 필요로 하는 종이입니다 분실하지 않도록 조심하세요

 

2. 원래 가지고 있던 차량이 있으시다면 임시번호판(이후 임판)일때 처분을 하셔야 됩니다.

여기서 처분이라함은 중고매매상에 판매 또는 직거래, 아니면 패차 등등..

이유는 기존에 가지고 있던 보험의 승계때문입니다.

가지고 있던 차량을 처분하셔야지만 임판번호판의 차대번호를 이용하여 보험승계가 됩니다

이때 처분을 하지 않은 상태로 보험승계를 하게되면 기존차량의 책임보험 누락으로 벌금을

받게 됩니다. ( 몇일 일지라도 벌금이 나온다고 하더군요)

그러니 중고차매매센터에서 처리를 하셨더라고 당담자에게 그다음날 전화하셔서 승계해도

되는지 확인후 승계를 하시기 바랍니다. 생애처음 차량이라면 위과정은 생략입니다.

 

3. 승계가 처리되었다면 보험회사에 전화를 걸어 보험승계를 요청합니다.

이때 차량제작증에 있는 차대번호, 차량공급가액, 차량의 버전(:아반테 MD 블루세이버)

필요합니다. 보험증권은 차량번호가 나오면 받으시면 됩니다. 인터넷으로 등록할때는

전산처리로 확인이 되더군요

 

4. 이젠 http://www.ecar.go.kr 가입합니다.

신규등록신청 으로 들어가서 차량정보,신청자정보등을 작성하고 구비서류확인버튼을 누르면

현재까지 구비된 서류(보험등등) 필요로 하는 서류가 나옵니다.(전산처리가 좋더군요)

이때 필요한게 세금계산서의 스켄본입니다. 스케너가 없는 관계로 책상에 두고 핸드폰으로

찍어서 파일을 보냈습니다. 이때 등록관청을 정해야되는제 이때는 직접 방문하기 편한곳으로

정하면 됩니다. 참고로 초보자길라잡이 라는 도움말이 있어 도움이 되더군요

5.
처리가 되었다면 처리 과정들을 핸드폰문자로 전송을 해줍니다.

승인대기,등록세 미납, 공채할인 미납등등... 이때마다 ecar 들어가서 세금 납입하면 됩니다.

이때 카드로 무이자가되니 좋더군요. ^^ 채권 할인은 계좌이체 해야됩니다

역시 영맨 견적과는 차이가..... 저렴합니다. ^^ (공채에서만 8만원 전체 13만원 이상)


6.
위의 처리가 됐다면 등록관청에서 전화가 올겁니다. 이때 언제쯤 갈수 있다라고 말하면 됩니다

준비물은 차량제작증, 임시차량운행증을 창구에 같다드리면 7600 세금을 내고 오라고 합니다

영수증 제출하면 빳빳한 차량등록증과 공익요원이 임판을 제거하고 번호판과 달아줍니다.

이때 번호판 가이드 필요하겠지요 사제를 사서 준비해가셔도 되고요 아니면 등록관청 주변에 번호판

가이드를 파는 곳을 알려줍니다 그곳에 가서 2만원에 구매후 공익요원에게 전달하면 됩니다.

7. 전체 시간은 인터넷으로 신청하는시간 책상에 앉아서 이것저것하면서 같이 했고요

직접 등록관청에 가서는 주차하고 나오는데까지 30 소요됐습니다.

이상입니다 회원님들 모두 안전운행하시기 바랍니다.

[출처] 인터넷 차량등록 방법 (아반떼MD동호회 현대신형아반떼md2011) |작성자 난나야

'Knowledge General' 카테고리의 다른 글

손연재 에어컨 모델별 구별법  (0) 2012.10.09
Hennesy 알아보기  (0) 2012.01.09
KBCard  (0) 2011.12.07
공채할인 계산  (0) 2011.09.05
경조사비?!  (0) 2011.07.25