2014년 12월 22일 월요일

Unity에서 IOException: The Port 'COM##' does not exist. 가 발생할 때

분명히 장치관리자에서는 Com 포트가 잡혀있고
터미널로 시리얼 통신을 해도 정상적으로 데이터를 주고받는데
유독 Unity에서만 저런 문제가 일어나길래 머리를 끙끙 싸매다가 발견한 것.

http://forum.unity3d.com/threads/ioexception-using-serial-dll.59360/
http://support.microsoft.com/kb/115831

결론은 Unity에서 지원하는 .NET 2.0에서 COM10 이상의 번호지정은 지원하질 않는단다.

그동안 이런저런 테스트 때문에 10번 이하의 포트는 사용 중으로 되어있어
아래와 같은 방법으로 모든 포트를 해제했다.

시작-실행-cmd
set devmgr_show_nonpresent_devices=1
start devmgmt.msc

(실제로는 잘되지 않아서 cmd를 관리자 권한으로 실행시켰다)
cmd 창에 위 명령어를 순서대로 치면 장치관리자가 나오는데
장치 관리자의 보기에서 숨김장치 표시를 누르면 할당된 모든 포트번호가 나온다.
일일히 우클릭 후 삭제를 눌러주면 OK.

COM3으로 장치를 재할당해주고 코드를 실행하니 아주 정상적으로 동작....하아

2014년 9월 1일 월요일

MySQL (MariaDB) Tip

1. 특정 필드의 특정 값 일괄 업데이트 하기

update "테이블 명" set "필드 이름"=replace("필드 이름", "찾을 값", "바꿀 값)";

ex) test 테이블의 city 필드에서 "서울"을 "서울특별시" 로 바꾸려면

update test set city=replace(city, '서울', '서울특별시');

위와 같이 써주면 test 테이블의 city 필드에서 '서울'이라는 단어를 찾아

모두 '서울특별시'로 바꿔준다.

2014년 6월 8일 일요일

쵸파로봇 리뷰(3) - 스티커 부착 및 합체

곡선이 많은 편이라 그런지 스티커를 붙이면서

차라리 붙이지 말거나 도색을 해버릴까...하는 생각이 들더군요.

그래도 이정도면 만족입니다!

1호기 쵸파 탱크

2호기 쵸파 윙

3호기 쵸파 서브마린

4호기 쵸파 드릴

5호기 쵸파 크랜

합체 후 1호기 - 머리

합체 후 2호기 - 몸통

합체 후 3호기 - 오른팔

합체 후 4호기 - 왼팔

합체 후 5호기 - 하반신

두둥! 쵸파로봇!

쵸파로봇 리뷰(2) - 가조립

1호기부터 5호기까지 로봇 및 쵸파 가조립 사진입니다.

회색 드릴 부품의 경우 얼룩덜룩한게 좀 거슬리더군요.

1호기 쵸파탱크

1호기 쵸파

2호기 쵸파윙

2호기 쵸파

3호기 쵸파서브마린

3호기 쵸파

4호기 쵸파드릴

4호기 쵸파

5호기 쵸파크랜

5호기 쵸파

박스 위에 일렬종대!

다섯 기가 한 자리에

그리고 대망의 합체샷 (5호기 눈?을 위로 안 올렸네요)

쵸파로봇 리뷰(1) - 박스 및 런너

1호기부터 5호기까지 합체가 되는 쵸파로봇 출시!!

어쩌다보니 5호기까지 순식간에 모으게 됐네요

박스 샷 및 런너 샷입니다.

스티커가 생각보다 많은게 아쉽군요.

(가격 생각하면 당연한걸지도...)

박스 샷

1호기 런너

2호기 런너

3호기 런너

4호기 런너

5호기 런너

2014년 3월 5일 수요일

Float To String (ftoa, by C)

/*
 * float f : 문자열로 변환할 실수값
 * int length : 문자열로 변환할 소수점 자릿수, 0이면 정수로 변환
 * char *buffer : 변환값을 저장할 문자열포인터
 */

void FloatToString(float f, int length, char* buffer)
{
int i = 0;
int num = 0;
int pos = 0;
int dec = 0;

if(f < 0)
{
buffer[pos++] = '-';
f *= -1;
}

dec = f;

while(dec > 0)
{
num++;
dec /= 10;
}

dec = f;
f = (f-dec) * 10;

if(num == 0)
{
buffer[pos++] = '0';
}
else
{
for(i = num; i > 0; i--)
{
buffer[i-1 + pos] = dec % 10 + '0';
dec /= 10;
}

pos += num;
}

if(f == 0.0f)
return;
else
{
if(length > 0)
buffer[pos++] = '.';

for(i = 0; i < length; i++)
{
int value = f;
buffer[pos++] = value + '0';
f = (f-value) * 10;
if(f == 0.0f)
break;
}
}
}

2014년 1월 23일 목요일

난데없이 2013 P&I 사진 정리

2014 P&I 소식이 있길래 갑자기 생각난 작년 P&I








운 좋게...라기보단 얼떨결에 찍은 수지 사진은 덤








우연찮게도 모든 사진이 50-200으로 찍은 사진

망원번들이 좋긴하지만 조리개를 더 조일 수 있는 망원 렌즈가 가지고 싶다...

라고 꿈만 꿔 본다.

2014년 1월 15일 수요일

보정이란...




위가 원본, 아래가 후보정한 결과물인데

보정한 것보다 원본이 더 느낌있어 보이는...

사진이란 참 난해하다.