7월, 2012의 게시물 표시

C 구조체로 포인터 값 가져오기

개념을 잡아놔도 가끔 햇갈려서 잘못 쓸데가 많다 만약 구조체 typedef struct {   uint16  neighborAddress;   uint8   neighborExtAddr[Z_EXTADDR_LEN];   uint16  panId;   uint8   age;          // number of nwkLinkStatusPeriod since last link status   linkInfo_t linkInfo; } neighborEntry_t; 이런 놈이 있다고 하면 이런 놈들을 배열로 가지고 있는 놈은 이렇게 있을 수 있다. neighborEntry_t neighborTable[MAX_NEIGHBOR_ENTRIES]; 이럴 때 배열안에 들어있는 놈들을 하나씩 구조체로 받아서 사용해야한다. 아래처럼 neighborEntry_t *neighborEntry ; neighborEntry = &neighborTable[selectNum]; 이렇게 해야 포인터로 잡아놓은 놈( neighborEntry)한테 배열의 주소를 받아와서 맹글어놓은  neighborEntry에 쏙쏙 들어가 준다. 그런 다음 실제 값을 보고 싶다면  neighborEntry->panId 이렇게 하면 실제 값을 확인 할 수 있다.  자꾸 까먹는게 포인터로 받아와야되는 빨간부분인데.....빨간부분을 놓치면 자연스럽게 파란 부분도 까먹는다 이거야 원~~~~ 까먹지 말자

cc2530 uart 설정

cc2530에서는 2개의 uart를 지원한다. uart0을 사용하기 위해서는 HAL_UART = TRUE; HAL_UART_ISR=1; HAL_UART_DMA=2; 와 같이 설정해 주면 uart0를 사용할 수 있다. 위에서 HAL_UART_DMA가 HAL_UART_ISR과 값이 같으면 에러가 출력된다. 물론 z-Statck에서 하는 말이다.

JAVA Float 변화

이종간의 데이터 연결에서 값이 float형으로 올 때 JAVA에서는 다음과 같이 변화해서 사용한다. Float.iniBitsToFloat(bits) : bits 값에는 변환할 데이터 0x00000000(4byte)값을 넣어 주면 된다.

CC2530 + CC2590의 테스트

cc2530은 기존에 지그비와 비슷한 거리 약 50~80m정도의 통신 거리를 확인 했었다. 하지만 좀 더 긴 통신거리를 필요로 하는 사이트에서 사용할 수 있도록 cc2590을 연결하여 테스트 해보았더니 기존거리보다 약 10m 정도 늘어난 통신거리를 확인했다. 증폭을칩을 연결하면 +6dbm을 제공한다고 하는데 그럼 거리는 얼마나 늘어나야 되나? 계산 되시는 분은 댓글좀 달아주시죠 ㅋㅋ

Mysql JOIN 사용시 컬럼이름 중복해결

mysql에서 join을 통해서 2개 이상의 테이블을 연결했을 때 2개의 테이블의 컬럼이 중복된다면 Alias를 사용해서 중복된 컬럼의 이름을 별칭으로 사용해서 해결 한다. 예를 들면 Table A와B에 공통된 컬럼인 test가 존재하면 SELECT * A.test as Atest, b.test as Btest FROM A LEFT OUTER JOIN B USING(key)와 같이 변경 하면 컬럼의 이름이 같아서 발생하는 에러를 방지 할 수 있다.

Mysql 외래키 설정시 주의할점

외래키로 설정되어 있는 컬럼은 외래키와 연결된 값이 있는지를 검색하고 있으면 저장된다. 하지만 최초등록시 외래키값을 모른 상태에서 등록할 수 있게 하려면 "null"값이 들어갈 수 있게 컬럼의 속성을 변경해줘야 한다. 변경은 다음과 같이 한다. ALTER TABLE 'table' MODIFY 'colum' char null; 주의 : 컬럼의 속성이 기본형(int,..)이면 null 값이 들어갈 수 없다.

자바 Date 객체와 Mysql

Mysql의 경우 "2011-09-11 12:12:00"를 2011-09-11 12:12:00.0으로 데이터를 반환하기 때문에substring(0,19)을 이용해서 Date를 읽어와야 한다.