'IT관련 지식들'에 해당되는 글 70건

  1. 2016.09.01 :: 리눅스 파일 전송 명령어(scp)
  2. 2016.08.18 :: ubuntu mount 명령어.
  3. 2016.08.12 :: DateX-ASN.1
  4. 2016.07.26 :: gdb 디버거 사용하기.
  5. 2016.07.25 :: makefile
  6. 2016.07.25 :: gcc 컴파일러.
  7. 2016.07.07 :: 우분투에서 Git 시작하기
  8. 2016.06.30 :: 가상 머신 네트워크 설정.
  9. 2016.06.30 :: 소켓 통신
  10. 2016.06.30 :: 싸이로드 세미나(카메라)
IT관련 지식들 2016. 9. 1. 13:58

우분투 시스템간 파일을 전송할 때, 간단하게 파일을 전송할 수 있다.


송신(Local -> Remote)


scp [파일명] [계정]@[주소]:[위치&파일명]


ex)

$ scp ./video_test.c odroid@192.168.128.6:/home/odroid/project/video_test.c



수신 (Remote -> Local)


scp [계정]@[주소]:[위치&파일명] [파일명]


ex)

$ scp odroid@192.168.128.6:/home/odroid/project/helloworld.c ./helloworld.c






'IT관련 지식들' 카테고리의 다른 글

우분투에서 잡히지 않은 하드 설정.  (0) 2016.10.26
strdup 함수  (0) 2016.09.07
ubuntu mount 명령어.  (0) 2016.08.18
DateX-ASN.1  (0) 2016.08.12
gdb 디버거 사용하기.  (0) 2016.07.26
posted by 동글동글82
:
IT관련 지식들 2016. 8. 18. 11:48

상황 : USB를 Insert


1. USB file 확인

> (sudo) fdisk -l


2. mount

  - standard : mount -t type device dir

> (sudo) mount vfat /dev/sdb1/ ./usb/


3. 확인

> cd usb

> ll



'IT관련 지식들' 카테고리의 다른 글

strdup 함수  (0) 2016.09.07
리눅스 파일 전송 명령어(scp)  (0) 2016.09.01
DateX-ASN.1  (0) 2016.08.12
gdb 디버거 사용하기.  (0) 2016.07.26
makefile  (0) 2016.07.25
posted by 동글동글82
:
IT관련 지식들 2016. 8. 12. 10:47

DateX-ASN.1 개념 정리


1. ASN.1

 Abstract Syntax Notation #1의 약자. 국제전기통신 연합(ITU : International Telecommunication Union)에서 정한 통신 데이터 형식 표준.


2. 관련 문서

ISO 15784 : Intelligent transport systems (ITS) — Data exchange involving roadside modules communication
   – ISO 15784-1
         - General principles and documentation framework of application profiles
          – ISO 15784-3
    - Application profile-data exchange (AP-DATEX)
KS X ISO 14827 : 교통 정보 및 제어 시스템-ITS를 위한 센터간 데이터 인터페이스
  –KS X ISO 14827-1
    • 메시지 정의 요구사항.
  –KS X ISO 14827-2

    • DATEXASN


* X.680~X.699 : ASN.1의 문법을 정의한 표준 문서.

X.680 – Basic Notation

X.681 – Information Objects

X.682 – General Constraint Notation

X.683 – Parameterization

X.690 – Basic (BER), Cannoical(CER), and Distinguished (DER) Encoding Rules

X.691 – Packed Encoding Rules (PER) 


3. ASN.1 문법

  - X680 문서에 기본 문법 참조.


ModuleDefinition ::=

ModuleIdentifier

DEFINITIONS

TagDefault

ExtensionDefault

"::="

BEGIN

ModuleBody

END

ModuleIdentifier ::=

modulereference

DefinitiveIdentifier

DefinitiveIdentifier ::=

"{" DefinitiveObjIdComponentList "}"

| empty

DefinitiveObjIdComponentList ::=

DefinitiveObjIdComponent

| DefinitiveObjIdComponent DefinitiveObjIdComponentList

...(중략)...

AssignmentList ::=

Assignment

| AssignmentList Assignment

Assignment ::=

TypeAssignment

| ValueAssignment

| XMLValueAssignment

| ValueSetTypeAssignment

| ObjectClassAssignment

| ObjectAssignment

| ObjectSetAssignment

| ParameterizedAssignment


각 모듈에서 사용할 수 있는 문법 중 다음 항목을 설명한다.

* Type Assignment : 변수의 타입을 설정.

          InventoryList {1 2 0 0 6 1} DEFINITIONS ::= BEGIN

{

ItemId ::= SEQUENCE

{

  partnumber IA5String,

  quantity INTEGER,

  wholesaleprice REAL,

  saleprice REAL

}

StoreLocation ::= ENUMERATED

{

  Baltimore (0),

  Philadelphia (1),

  Washington (2)

}

} END

* Value Assignment : 변수값을 설정

gadget ItemId ::=

{

  partnumber   "7685B2",

  quantity   73,

  wholesaleprice   13.50,

  saleprice   24.95

}


2. BER(Basic Encoding Rule)

  - DateX(Date Exchange)중 한가지 방법인 BER에 대해 설명.

  - Tag Length Value의 앞자를 따서 TLV라고도 함.

  - X.690 문서 참조.


- Structure of an encoding

 Identifier Octets

 Length Octets

Contents octets 

End-of contents Octets(생략가능) 


- 그리고 대략 다음과 같은 구조를 가짐

Seq ::= SEQUENCE {

first INTEGER,

second INTEGER }

seqVa1 Seq ::= { 10, 20 }


Tag 

Length 

Value 

 

 

 SEQUENCE

V의 길이(구조체 전체 크기)

 Tag

Length 

Value 

 

 

INTEGER 

 V의 길이

 10 

 

 

INTEGER

 V의 길이 

 20 








ASN.pptx


'IT관련 지식들' 카테고리의 다른 글

리눅스 파일 전송 명령어(scp)  (0) 2016.09.01
ubuntu mount 명령어.  (0) 2016.08.18
gdb 디버거 사용하기.  (0) 2016.07.26
makefile  (0) 2016.07.25
gcc 컴파일러.  (0) 2016.07.25
posted by 동글동글82
:
IT관련 지식들 2016. 7. 26. 13:43

# 컴파일 하면서 -g 옵션을 넣는다.


$gcc -o helloworld helloworld.c

==>

$gcc -g -o helloworld helloworld.c


단, 이때 최적화 옵션[-Oleverl]은 제거한다.


# 파일을 실행하면서 gdb로 실행한다.

$gdb ./helloworld



break point를 지정한 뒤 run 명령어로 시작한다.


# breakpoint 설정방법.


(gdb) break initTask

breakpoint를 함수명(initTask)에  설정.


(gdb) break keonamain.c:120

breakpoint를 파일(keonamain.c)의 x(120)번째 줄에 설정.


# 변수값 설정

(gdb) p gValue

변수(gValue)값을 출력

(gdb) set gsImageQueue.front=2

변수(gsImageQueue.front)값을 변경(0-->2).


# 코드보기

(gdb) list

현재 실행중이 코드를 출력.

'IT관련 지식들' 카테고리의 다른 글

ubuntu mount 명령어.  (0) 2016.08.18
DateX-ASN.1  (0) 2016.08.12
makefile  (0) 2016.07.25
gcc 컴파일러.  (0) 2016.07.25
우분투에서 Git 시작하기  (0) 2016.07.07
posted by 동글동글82
:
IT관련 지식들 2016. 7. 25. 15:55

기본적인 내용은 KLDP wiki를 참고했음.


1. makefile의 사용목적

  - 편리하게 컴파일


2. 구조.

  - <target> <depend> <command><macro>로 구성


<Target> : <Depend> ?... [[;] Command ]

/탭문자/ <Command>


<Target> 생성하려고 하는 목적물.

<Depend> Target을 만드는데 필요한 요소.

<Command> 일반 쉘 명령어. 앞에 /탭문자/를 입력하여 구분.


===== 예제 =====

test: test.o 
        ld -lc -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 \
            -o test \
            /usr/lib/crt1.o \
            /usr/lib/crti.o \
            /usr/lib/crtn.o \
            test.o 

test.o: test.c 
        cc -O2 -Wall -Werror -fomit-frame-pointer -c -o test.o test.c


3. 매크로 활용.

<Macro> 특정한 단어, 경로 등등을 미리 저장.

선언 : <Macro name> = <Macro 내용>

사용 : $(macro name)


위 내용을 다음과 같이 변환 가능

CC = cc 
LD = ld 
CFLAGS = -O2 -Wall -Werror -fomit-frame-pointer -c 
LDFLAGS = -lc -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 
STARTUP = /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o 

test: test.o 
        $(LD) $(LDFLAGS) -o test $(STARTUP) test.o 

test.o: test.c 
        $(CC) $(CFLAGS) -o test.o test.c 


4. 기본 확장자 규칙

.c.o: 

  - .c파일을 .o파일로 만들기

$@

  - target

$<

  - 열거된 depend중 최 좌측 항목

$^

  - depend 전체


위 내용을 다음과 같이 변환 가능

CC = cc 
LD = ld 
CFLAGS = -O2 -Wall -Werror -fomit-frame-pointer -c 
LDFLAGS = -lc -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 
STARTUP = /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o 

test: test.o 
        $(LD) $(LDFLAGS) -o $@ $(STARTUP) $^ 

.c.o: 
        $(CC) $(CFLAGS) -o $@ $<



응용 & 확장

CC = cc 
LD = ld 
RM = rm -f 
CFLAGS = -O2 -Wall -Werror -fomit-frame-pointer -v -c 
LDFLAGS = -lc -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 
STARTUP = /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o 

BUILD = test 
OBJS = test.o hello.o 

.PHONY: all clean 

all: $(BUILD) 
clean: ; $(RM) *.o $(BUILD) 
test: $(OBJS) ; $(LD) $(LDFLAGS) -o $@ $(STARTUP) $^ 

# 의존관계 성립 
$(OBJS): $($@:.o=.c) hello.h Makefile 
# test.o hello.o: $($@:.o=.c) hello.h Makefile 

# 확장자 규칙 (컴파일 공통 규칙) 
.c.o: ; $(CC) $(CFLAGS) -o $@ $<


$($@:.o=.c) : 타겟의 확장자 .o를 .c로 변경


'IT관련 지식들' 카테고리의 다른 글

DateX-ASN.1  (0) 2016.08.12
gdb 디버거 사용하기.  (0) 2016.07.26
gcc 컴파일러.  (0) 2016.07.25
우분투에서 Git 시작하기  (0) 2016.07.07
가상 머신 네트워크 설정.  (0) 2016.06.30
posted by 동글동글82
:
IT관련 지식들 2016. 7. 25. 15:04

makefile을 분석하기 위해서는 먼저 gcc 컴파일에 대한 이해가 필요하다.


1. 기본동작


execute파일을 생성한다.


==== 소스코드 ====


#include <stdio.h>


int main(int argc, char** argv)

{

    printf("Hellow World\n");

    return 0;


==== 실행 예제 ====


$ gcc test.c

$./a.out

Hellow World


==== 이론 ====

1. 전처리 단계 - 전처리기 (cpp)

: #include, #define 등 #으로 시작하는 문법 사항이 적절히 전처리된 C 언어 소스파일 생성

2. 컴파일 단계 - 컴파일러 (cc1) 

: C 언어 소스파일은 컴파일 과정을 거쳐 어셈블리 소스 파일이 됨

3. 어셈블 단계 - 어셈블러 (as)

:어셈블리 소스 파일은 어셈블 과정을 거쳐 목적 파일이 됨 

4. 링크 단계 - 링커 (ld)

: 목적 코드는 라이브러리와 링크되어 실행 가능한 파일이 됨


2. 옵션

  2.1. 실행파일명 입력 [-o outfile]


$ gcc test.c -o test

$./test

Hellow World


  2.2. 오브젝트파일 생성까지만 진행 [-c] 

    - 위 이론에서 3번까지만 진행. *.o파일을 생성.

    - 각각의 오브젝트파일을 만들어 추후에 링크를 걸 경우 유용함.

ㄱ) 한번에 컴파일하는경우

$gcc -o main main.c fun1.c fun2.c


ㄴ) 나눠서 컴파일 하는 경우.

$gcc -c main.c

$gcc -c fun1.c

$gcc -c fun2.c

$gcc -o main main.o fun1.o fun2.o


    - ㄴ)의 경우 파일 하나를 고쳐서 다시 컴파일하는 경우 유리하다. 파일 하나가 아니라 모듈 단위로 컴파일 하는 경우라면 더욱 더 ㄴ)의 형태로 가는 것이 좋다.


    2.3 어셈블리까지 진행 [-s]


    2.4 최적화 수준 지정(-Olevel]

      - 숫자가 클수록 높은 최적화


    2.5 디버깅 옵션 [-g]


    2.6 추가 디파인 [-Dmacro[=defn]...]


    2.7 라이브러리 디렉토리 지정[-Ldir...]


    2.8 모든 에러 출력 [-Wwarn...] [-Wpedantic]


    2.9 추가 헤더파일 디렉토리 지정 [-Idir...]

'IT관련 지식들' 카테고리의 다른 글

gdb 디버거 사용하기.  (0) 2016.07.26
makefile  (0) 2016.07.25
우분투에서 Git 시작하기  (0) 2016.07.07
가상 머신 네트워크 설정.  (0) 2016.06.30
소켓 통신  (0) 2016.06.30
posted by 동글동글82
:
IT관련 지식들 2016. 7. 7. 16:10

ubuntu 14.04에서 git 시작하기


1. 프로그램 다운로드

~/$ sudo apt-get install git qgit gitk git-svn


2. 사용자 등록

~/$ git config --global user.name "kangmin" 

~/$ git config --global user.email "kangmini82@gmail.com"


3. 초기화

~/$mkdir gitrepository

~/gitrepository$ git init


4. 사용하는 프로그램 등록 및 동기화

~/project$mkdir gitrepository

~/project/gitrepository$git clone ~/gitrepository/

~/project/gitrepository$git add *

~/project/gitrepository$git commit -m "Working all thread"


* GUI 환경

~/project/gitrepository$gitk


관련사이트

https://git-scm.com/book/ko/v2

https://rogerdudler.github.io/git-guide/index.ko.html

'IT관련 지식들' 카테고리의 다른 글

makefile  (0) 2016.07.25
gcc 컴파일러.  (0) 2016.07.25
가상 머신 네트워크 설정.  (0) 2016.06.30
소켓 통신  (0) 2016.06.30
싸이로드 세미나(카메라)  (0) 2016.06.30
posted by 동글동글82
:
IT관련 지식들 2016. 6. 30. 16:42

가상 머신의 네트워크 설정은 다음과 같다.


1. NAT(Network Address Translation)

  - PC가 IP공유기 역할을 수행한다.

  - 가상머신은 내부 네트워크를 사용하며 PC와는 다른 대역의 IP를 부여한다.  

    ex) PC : 192.168.0.2 , 가상머신 ; 10.0.0.2


2. 브릿지

  - 가상머신은 PC와 동등한 PC로 인식한다.

  - PC와 같은 대역의 IP를 부여받는다.

    ex) PC : 192.168.0.2 , 가상머신 : 192.168.0.3


3. Host only.

  - 가상머신은 인터넷을 할 수 없다.

    ex) PC : 192.168.0.2 , 가상머신 : IP 없음.


버추얼 머신 5.0.20을 설치하면 이외에 NAT 네트워크, 내부네크워크, 일반 드라이버 3가지 메뉴가 더 있다. 이에 대해서는 실험을 해 본 후 추가한다.

'IT관련 지식들' 카테고리의 다른 글

gcc 컴파일러.  (0) 2016.07.25
우분투에서 Git 시작하기  (0) 2016.07.07
소켓 통신  (0) 2016.06.30
싸이로드 세미나(카메라)  (0) 2016.06.30
UML(Unified Modeling Language).  (0) 2016.06.20
posted by 동글동글82
:
IT관련 지식들 2016. 6. 30. 15:15

c.c

defines.h

s.c



통신을 할 일이 생겨서 소켓통신을 찾아봤다.


서버는 다음의 흐름을 가진다.


socket() : 구조체 생성

bind() : IP addr등의 값 설정.

listen() : 대기

accept() : 연결

<<read(), write()>>

close()


클라이언트는 다음의 흐름을 가진다.


socket() : 구조체생성

connect() : 연결

<< read(), write() >>

close()


코드는 첨부파일 참조.

posted by 동글동글82
:
IT관련 지식들 2016. 6. 30. 11:56
싸이로드 세미나 보고.(6/29)

  1. 이미지 센서와 성능
    1. CCD와 CMOS의 차이점
    2. EMVA1228 비교 테이블
    3. 이미지 성능 관련 요소.
      1. Shot noise
      2. Pixel Size
      3. Quantum efficiency
        1. 양자 효율
      4. Temporal dark noise
      5. Saturation capacity
        1. Full Well depth
      6. Signal to noise ratio
      7. Dynamic range
      8. Absolute Sensitivity threshold
      9. Gain
    4. 사용 환경에 따른 고려가 필요.
      1. 빠른 이동 중이라면 fps가 늘어야 한다
      2. 셔터 속도가 빠르면 광량이 적기 때문에 픽셀사이즈, 양자효율들을 확인한다.
      3. 밤에 광량이 적은 상태에서 촬영을 해야하는 조건이 추가된다면 또 다른 조건들을 생각해봐야한다.
    5.   SDK - point grey
      1. Spinnaker - GenICam 표준을 따름
      2. FlayCapture2
  2. 열화상카메라 기초교육.
    1. 각 픽셀에 온도값을 받아서 온도 캘리브레이션 내용과 비교하여 열 영상을 출력.
    2. 적외선 카메라 선정시 고려사항
      1. 측정하는 온도범위
        1. 각 제품의 적정 온도 범위가 다름
      2. 데이터 수집 속도
        1. 노출 시간과 프레임 속도
      3. 목표물의 크기와 측정 거리
        1. 목표물의 한 픽셀안에 들어오지 않는 경우 온도가 다르게 표현될 수 있다.
        2. 측정거리가 멀먼 온도가 실제 온도보다 낮게 나올 수 있다.
      4. 적합한 디텍터와 필터.
        1. 가시광선, 적외선(NIR, MWIR & LWIR)
      5. 지원 SW, 개발툴
      6. 제조사의 지원 및 교육
      7. 추가 액세서리
  3. 3D 카메라의 측정 방법과 특성.
    1. Laser Triangulation
      1. 라인 레이저로 발사한 빛을 카메라가 받아서 거리를 연산
    2. Photogrammetry
      1. 다양한 각도에서 찍은 사진을 분석하여 하나의 3D이미지로 합성
    3. Stereometry
      1. 두개의 렌즈로 수집한 데이터를 분석하여 거리를 측정.
    4. TOF
      1. 레이더의 원리와 비슷.
      2. 동작 카메라의 특성을 가짐.
    5. Moire

각종 카메라와 그 원리에 대해서 알아볼 수 있는 좋은 세미나였습니다. 특히 첫번째 강의에서 카메라의 특성을 설명하면서 연구/개발에 적합한 제품의 선택 방법을 이야기한 부분은 많이 유용했습니다.


'IT관련 지식들' 카테고리의 다른 글

가상 머신 네트워크 설정.  (0) 2016.06.30
소켓 통신  (0) 2016.06.30
UML(Unified Modeling Language).  (0) 2016.06.20
가변인자를 사용한 매크로 (개인용 printf)  (0) 2016.06.16
usleep함수 사용.  (0) 2016.06.15
posted by 동글동글82
: