Computer/ETC
CAN 통신 이해하기
CAN 통신 프로토콜CAN 메시지에 있는 식별자(ID)의 길이에 따라표준 CAN : 11비트 식별자 (2.0A)확장 CAN : 29비트 식별자 (2.0B) CAN 메시지 구조CAN에서는 데이터 프레임(data frame), 리모트 프레임(remote frame), 에러 프레임(error frame), 오버로드 프레임(overload frame)의 4가지 프레임 타입을 정의하고 있습니다. 데이터 프레임은 일반적으로 데이터 전송에 사용되며, 리모트 프레임은 수신할 노드에서 원하는 메시지를 전송할 수 있는 송신 노드에게 전송을 요청할 때 사용됩니다. 에러 프레임은 메시지의 에러가 감지되었을 때 시스템에 알릴 목적으로 사용됩니다. 마지막으로 오버로드 프레임은 메시지의 동기화를 목적으로 사용됩니다.CAN 통신에서..
Computer/ETC
CAN (Controller Area Network) 정리!
CAN CAN 통신(Controller Area Network)은 차량 내에서 호스트 컴퓨터 없이 마이크로 콘트롤러나 장치들이 서로 통신하기 위해 설계된 표준 통신 규격이다. CAN 통신은 메시지 기반 프로토콜이며 최근에는 차량 뿐만 아니라 산업용 자동화기기나 의료용 장비에서도 종종 사용되고 있다. Controller Area Network (CAN)은 각 제어기들 간의 통신을 위해 주로 사용되는 non-host bus 방식의 메시지 기반 네트워크 프로토콜이다. 1983년 최초로 Bosch社에 의해 개발되었고, 1986년 공식적으로 소개된 이래, 현재 생산되는 대부분의 자동차에서 사용되고 있으며, 기타 다양한 분야에서도 적용이 되고 있다. CAN 통신은 로버트 보쉬사에서 1983년부터 개발에 착수해 19..
Computer/ETC
장치관리자에서 디바이스 이름 변경하기
컴퓨터를 사용하다보면 동일한 디바이스를 사용할때가 있다.그럴때! 장치관리자에서 동일하게 이름이 뜬다면, 당황스러울것이다. 자 그럼 장치관리자를 불러볼까?윈도우10은 돋보기에서 'devmgmt.msc' 윈도우8이하는 실행에서 'devmgmt.msc' 실행시키면 물론, 내컴퓨터-시스템으로 들어가서 장치관리자로 들어가도된다. 그럼 장치관리자 윈도우가 나타나면서, 연결된 디바이스를 볼수 있다. Razer Kiyo를 사용하는데, 같은 이름으로 나타나니 설정하기도 애매하고 On/Off 하기도 힘들다. 그래서!장치관리자에서 디바이스 이름 변경하기. 해보자. 1. 해당 디바이스에서 오른쪽마우스 클릭 후, [속성] 2. [속성]에서 [자세히] 탭으로 들어가서 '드라이버 키'를 눌러 '값'을 확인한다.3. 그리고 복사! ..
Computer/ETC
정보처리 - 데이터베이스
릴레이션개체타입(Entity Type): 속성들로만 기술된 개체의 정의개체 어커런스(Occurence): 개체를 구성하고 있는 각 속성들이 값을 가져 하나의 개체를 나타내는 것. 튜플과 같은 의미임튜플(Tuple): - 릴레이션을 구성하는 각각의 행 - 속성의 모임으로 구성된다. - 파일 구조에서 레코드와 같은 의미 - 카디널리티 = 튜플의 수 = 가수 = 대응 수속성(Attribute, 애튜리뷰트) - 데이터베이스를 구성하는 가장 작은 논리적 단위 - 파일 구조상의 데이터 항목 또는 데이터 필드에 해당된다. - 개체의 특성을 기술한다. - 디그리 = 속성의 수 = 차수도메인(Domain) - 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(Atomic)값들의 집합 - 실제 애트리뷰트 값이 나타날 때..
Computer/ETC
리틀엔디안(little endian)&빅엔디안(big endian)
리틀엔디안(little endian)과 빅엔디안(big endian) 알면서도 자주 헷갈리는,, 사실 개념을 정확하게 잡아두고 기억해 두지 않아서 그렇지만,, 자! 오늘 정리하면서 기억해 보자. 리틀엔디안은 least significant bit 빅엔디안은 most significant bit 1. 리틀엔디안 낮은주소에서 하위바이트부터 기록, 0x1234를 저장할때, 34, 12 의 순으로 저장됨. 2. 빅엔디안 낮은주소에서 상위바이트부터 기록, 0x1234를 저장할때, 12, 34 의 순으로 저장됨. 읽기는 빅엔디안이 쉽지만, 저장은 리틀엔디안이 좋다고... 하지만 도긴개긴 -_-a 여러번 왕복해서 보다보면 헷갈려~
Computer/ETC
VS2013, 플러그인 없애고 싶은데...
VS2013에 설치한 플러그인 프로그램을 삭제하고 싶은데... 지난번 플러그인들중 쓸만한 것들이 많아서 마구마구 묻지마! 설치를 ... 그런데!! 막상 사용해 보니 불편한 것들이 있었다..어떻게 지우나?? -_-; 난 참 바보다 ㅋㅋㅋㅋㅋ플러그인들을 언인스톨 해보고 해도그놈의 잔재들은 VS2103에 있드라 ㅠ_ㅠ 아고고고고...없애자! 도구 - 확장 및 업데이트... 를 클릭! 여기서 안쓸꺼 제거! 막제거!그러면 된다.... 난 이걸 몰랐긔!왜냐? 메뉴얼 보거나 막 그런 스타일이 아니라..마구마구 눌러보고 경험해 보는 스타일이니깐.... 정말정말, 간단한건데 난 이걸로 엄청나게 짜증을 느꼈지..역시 알면 쉽고 간단한데 모르면...... 손발이 고생이여~
Computer/ETC
운영체제의 주요 구성 기술
1. 프로세스의 관리(1) 프로세스CPU에 의해 수행되는 시스템 및 사용자 프로그램, 프로시저의 활동, 비동기적 행위를 일으키는 주체, 운영체제가 관리하는 실행단위 (2) 스레드(Thread)프로세스에서 실행의 개념만 분리, 독립된 제어 흐름, 하나의 프로세스에 한 개의 스레드 또는 여러 개의 스레드가 존재, 하나의 프로세스 내에서 병행성을 증대시키기 위한 메커니즘, 경량 프로세스라고도 부른다. (3) 프로세스 제어 블록(PCB)운영체제가 프로세스에 대한 유용한 정보를 저장, 운영체제에게 프로세스에 대한 정보를 제공, 각 프로세스는 고유의 PCB 소유, 부모 프로세서와 자식 프로세서는 PCB(Process Control Block)를 공유하지 않는다. (4) 프로세서 제어 블록 포함 정보프로세서 식별자,..
Computer/ETC
Thread(스레드)
메인스레드 외에 다른 스레드를 사용하여 비동기로 동작할 필요성을 느끼게된다.이럴때 스레드를 사용하여 각각 독립적인 동작으로 사용할 수 있다.스레드를 분리하지 않고 메인스레드로만 이용한다면 다량의 데이터를 연산, 관리하는 부분에서 동작을 실행중이기 때문에 다른것들은 하지 못하고 그 동작이 끝날때 까지 기다려야한다. 스레드는 메인스레드와 독립된 동작이기 때문에 멤버변수나 해당클래스의 객체를 이용해서 접근해야한다.스레드 함수 안에서 해당클래스의 변수나 함수로 바로 접근할 수 없다. .h 헤더//타입은 UINT를 해야 하고 매개변수 lParam을 넘겨 주어야 한다static UINT ThreadProc(void *lParam); .cpp 구현AfxBeginThread(ThreadProc, this); nNum1..
Computer/ETC
항목4: 객체를 사용하기 전에 반드시 그 객체를 초기화하자
int x; 어떤 상황에서는 x의 값이 확실치 초기화되지만(0으로), 또 다른 상황에서는 그것이 보장되지 않는다. class Point{ int x, y; }; ... Point p; 이렇게 했을 때, p의 데이터 멤버 역시 어떤 상황에서는 초기화가 보장되지만 어쩔때는 또 안된다. 초기화되지 않은 값을 읽도록 내버려 두면 정의되지 않은 동작이 그대로 흘러 나오게 된다. 어떤 플랫폼의 경우에는 미초기화 객체를 읽기만 해도 프로그램이 서 버리기도 합니다. 대체적인 경우에는 적당히 무작위 비트의 값을 읽고 객체의 내부가 이상한 값을 갖게 된다. C++의 객체가 초기화가 중구난방인 것은 절대 아니다. 언제 초기화가 보장되며 언제 그렇지 않은지에 대한 규칙이 명확히 준비되어 있다. 안타까운점은 복잡하다.;;; 가..