IHLAB-128보드 로 제작하였음.
SRF-08과 SRF-10은 같은 TWI(I2C)방식으로 제어방식이 동일함.
TWI 초기화 -> 거리감지 시작 -> 측정시간동안 대기 -> 거리얻어오기 순서이다..
주소는 초기 0xE0로 설정되어있지만 변경하여서 0xE2 ~ 0xEA까지로 바꾸었다.
새제품일 경우는 조소에 0xE0로 하여 Test 하변 된다.
#include <stdio.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <termios.h>
#include <stdlib.h>
struct termios tio; // 터미널 구조체
int main(int argc, char *argv[]) {
int fd, result; //fd 파일 디스크립터, result : 파일 RW 결과값
long baud = B38400; //통신속도
unsigned char buf; // 데이터 받을 buf -> unsigned를 안붙이면 값이 이상하게 나온다.
char sBuffer[7]={0x02, 0x03, 0x49, 0x56, 0x00, 0x03, 0x1C}; // 보낼 데이터 (현재 뚜리가 사용하고 있는 키트의 정의된 프로토콜 형식
if((fd = open("/dev/ttyS0", O_RDWR|O_NDELAY|O_NOCTTY)) < 0) { // READ, WRITE로 Serial0 포트 열기
exit(1);
}
////////////////// 보낼 옵션 설정
tio.c_cflag = baud|CS8|CREAD|CLOCAL; // baud 통신 속도, CS8 (8bit, No Parity, 1 Stop Bit)설정
// CREAD 문자 수신가능하게 함, CLOCAL, Local Connection 모뎀제어 안함..
//처음엔 CRTSCTS를 같이 c_cflag에 줬었다. 그래서 정상적으로 작동이 안되서 상당히 얘를 먹었다.
// CRCTSCTS는 하드웨어 흐름제어, 직렬 케이블의 모든 선이 연결되어 있을 때 사용 -> 보통 모든선을 다 안쓰므로. ^^
tio.c_cflag &= ~HUPCL;
tio.c_lflag = 0; // Local Mode 설정
tio.c_iflag = IGNPAR; // Parity 오류가 있는 문자 무시
tio.c_oflag = 0; // 출력처리 설정 0이면 아무것도 안함
///////////////// 옵션 설정 끝 (물론 추가적인 옵션도 많이 있으나 찾아보기 바란다.)
tcflush(fd, TCIFLUSH); // 설정을 초기화
tcsetattr(fd, TCSANOW, &tio); // tio 터미널 구조체의 속정으로 설정을 적용시킨다.
fcntl(fd, F_SETFL, FNDELAY); // 열려있는 파일 제어를 위해 사용
result = write(fd, sBuffer, 7); // 실제적으로 시리얼로 데이터를 보낸다. sBuffer값의 7개만 시리얼0으로 보낸다.
if(result < 0) { // 에러냐?
printf("write error\n");
close(fd);
exit(1);
}
usleep(1000); // 쉬고
while(1) { // 데이터 받는 부분.. 오는거 계속 출력한다. 주구장창.. ^^
if((result = read(fd, &buf, 1)) > 0) {
printf("%02x ", buf);
fflush(stdout); // 뿌려주3.
}
}
close(fd); // 끝내기 닫고
}
//--- External Function에 다음과 같이 선언하시고
Function Long SetWindowPos (Long hwnd ,Long hWndInsertAfter ,Long x ,Long y ,Long cx ,Long cy ,Long wFlags ) Library "user32"
//--- 다음과 같이 기술합니다.
Constant Long HWND_TOPMOST = -1 //맨위로 설정할때
Constant Long HWND_NOTOPMOST = -2 // 설정을 해제할때
Constant Long SWP_NOSIZE = 1
SetWindowPos (Handle(W_NAME), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE)
[이 게시물은 사랑니님에 의해 2009-08-02 15:38:47 PowerBuilder에서 이동 됨]
[출처] IT.DevInfo ∽ 힘든 IT개발자들의 즐거운 공유(ITDI.co.kr) - http://wss02.ivyro.net/onuri/bbs/board.php?bo_table=02_2&wr_id=68
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOP = 0
Private Const HWND_BOTTOM = 1
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Function EnabledAlwaysOnTop(hwnd As Long) As Long
EnabledAlwaysOnTop = SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)
End Function
Function DisabledAlwaysOnTop(hwnd As Long) As Long
DisabledAlwaysOnTop = SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)
End Function
'사용법은
call EnabledAlwaysOnTop(form1.hwnd)
[출처] 항상위(Allways on TOP) 표현 API|작성자 곱단이
http://blog.naver.com/seamusic00?Redirect=Log&logNo=120014901361
자바의 개요
# 자바의 장점
- 자바는 운용체제에 의존적이지 않는다.
- 자바는 자바 가상 기계에 의하여 실행되기에 java.exe가 항상 필요하다.
개발환경 구축
#1. - 자바 JDK 다운 (http://java.sun.com)
- java SE( Standard Edition ) JDK
#2. - 설치
#3. - 환경변수 등록
- path => C:\Program Files\Java\jdk1.6.0_18\bin
- 설치된 폴더의 경로
#4. - 설치 확인하기
- cmmand - > java -version // 자바 버젼 확인
- cmmand - > javac -version // 자바 컴파일러 확인
자바 컴파일하기
// HelloJava 출력해보기
/************************************************
******** 자바 소스 ( HelloJava.java ) *******
class HelloJava{
public static void main(String args[]) {
System.out.println("Hello Java");
}
}
*************************************************/
소스 작성 및 컴파일 방법
#1. - 자바 소스 작성 (확장자 : .java)
-
#2. - 컴파일 하기
- d:>javac 파일명
- ex) d:\>javac HelloJava.java
#3. - 실행하기
- d:>java 실행프로그램명
- ex) d:\>java HelloJava
용어정리
- 메소드 ( method ) : 명령문들의 묶음 // C로 치면 함수, 내용