대부분 하드웨어를 설계하시는 분들은 Orcad 를 이용해서 회로도를 그리고, 아트웍 작업을 맡겨서 부품 배치도를 받아 확인한 이후에 PADS 파일을 받아서 최종 결선을 확인한 후 PCB 를 만들지요??

저도 마찬가지 입니다. 

제가 만든 PCB 는 6층으로 구성되어있구요 사이즈도 70*40 으로 상대적으로 작은 크기입니다. ㅋ

이걸 가지고 PADS 에서 직접 Netlist 확인하기란 거의 불가능에 가깝지요? ㅋㅋ

그래서 시간이 조금 지난후에는 머리를 조금 굴려서 Orcad 와 Pads 에서 각각 Netlist 를 각각 뽑아서 비교하였지요 ㅋㅋ 그것도 만만치가 않은 작업입니다. ㅋ

그렇다고 아예 비교를 안해버리자니 그것은 심장이 쫄려서 못해먹겠고 ㅋㅋ

언제 부터 이걸 자동으로 비교하는 프로그램을 만든다 만든다 하면서 미루다가 오늘 만들었습니다 ㅋㅋ 약 3시간정도 걸렸습니다 ㅠㅠ

먼저 Orcad 와 Pads 에서 각각 Netlist 를 생성하는 방법을 알려드리겠습니다. 

1. Orcad 10.3 기준




이렇게 하시면 이렇게 네트 리스트가 완성이 됩니다. ㅋ

PADS 형태로 꼭 바꾸어서 하셔야 합니다. ㅋ

제가 만든 프로그램이 그 포멧이거든요 ㅋㅋ 오케이??? ㅋ

꼭 확장자는 txt 로 바꿔주세요 ㅋ 


2. PADS 9.3 기준



ㅋㅋ 생각 보다 간단하지요? ㅋㅋ 이러면 얘도 네트 리스트를 뽑아준답니다 ㅋ 물론 이 파일도 txt 형태로 저장해주세요 ㅋㅋ 그 후에 우리는 제가 만든 MI Netlist Compare 1.0 프로그램을 켭니다 ㅋㅋㅋ


이것이 메인 화면입니다 ㅋㅋ 너무 단시간에 만든거라서 너무 디자인이 심플한가요? ㅋ 근데 중요한건 제가 디자인을 신경쓰고 해도 여기서 크게 바뀌지 않더이다 ㅋㅋㅋㅋㅋ 뭐 잘만 돌아가면 되지 라는 생각??? ㅋㅋㅋ

뭐 사용법 알려줄 필요잇나요?? ㅋㅋ 직관적으로 Orcad 에서 뽑은 네트 리스트 파일 클릭하고 PADS 에서 뽑은 Netlist 파일 클릭하고 스타트 버튼 눌르고

그럼 끗~ ㅋㅋㅋㅋ

주의할점은 네트리스트는 위에서 언급한대로 txt 형태로 꼭 바꿔주셔야 합니다. ㅋㅋ



ㅋㅋ 이런식으로 작동해요 ㅋㅋ

3개의 이상을 발견했지요? ㅋㅋ

일부러 제가 틀리게 고쳐보았어요 ㅋ

확인을 누르면 에러 리포트가 바로 팝업된답니다 ㅋㅋ



나름대로 포멧을 짜보았는데 ㅋㅋㅋㅋㅋ

여하튼 이런 프로그램입니다 ㅋㅋ

분명히 공학을 하시는분들에게 큰 도움이 될 프로그램이라고 생각됩니다.

사용법을 숙지하셔서 구현 시간을 단축 시키시길 바랍니다. 프로그램은 아래에 첨부합니다.


MI_NetlistCompare.msi


저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by J.Bear

이 프로그램을 이용하면서 데이터를 받던 도중 아쉬분 부분이 있어서 급하게 기능을 추가했습니다.



위와 같이 [기억] 항목이 추가되었습니다.

이 버튼이 체크되어있는 상태에서는 처음 Select 한 포인트를 계속 기억하고 있습니다.

즉, Go 버튼만 클릭하면 동일한 지점을 계속 찍어댈수 있습니다.

데이터를 여러번 받을려다보니까 켜고 끌때마다 계속 Select 를 해줘야하는 과정이 굉장히 불편해서 추가했습니다.

아래는 Release Note 입니다.

1. 기능 버튼이 추가되었습니다.
2. 기존에 마우스 클릭시 가지고 있던 20ms 의 딜레이를 없앴습니다. 없어도 잘 되더군요
    클릭한 이벤트가 큐잉프로세스 처리되는것으로 보입니다. (이건 단순히 추측일뿐 ㅋㅋ)

나머지 기능은 똑같습니다.

역시나 소스코드는 아래에 댓글로~
비밀댓글하지 마세요 ㅋㅋ 로그인하기 귀찮아요 ㅋ

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by J.Bear

인간은 필요에 따라 움직이는 동물이라고 하였던가???

바야흐로 때는 어젯밤 !!

내가 만든 모듈의 출력값과 PowerLab 이라는 Reference 장비가 보여주는 출력값 사이의 상관성을 살펴보기위해 신호처리를 할려고 데이터를 받을 준비를 하였다.

동시에 두 데이터를 저장 해 놓고 똑같이 나오는지를 확인해보려는 속셈.
헌데!!!

내손은 두개인데 마우스 포인터가 하나라서 한쪽 스타트 시키고 다른 한쪽 스타트 시키는데 아무리 빨라도 약 0.5초에서 1초는 걸리는것이 아닌가!!!

이거 나중에 데이터 받아다가 모두 다 다시 싱크를 맞춰야 할 판국!!!

허허... 이걸 어찌해야한다냐 ㅋㅋ

"그래! 자동으로 스타트 버튼을 타탁! 하고 눌러줄수 있는 프로그램을 만들어서 쓰자."

그래서 오늘 아침에 이 프로그램을 만들었다.

저녁에 데이터 받을려면 빡시게 만들어야 겠다 생각하고 조올라 만들었다.

생각보다 잘빠졌다. ㅋㅋㅋ

굉장히 잘된다 ㅋㅋ

조금 수정하고 덧붙이고 이러면 여러군데에서 써먹을 수 있는 쓸만한 새끼 프로그램들도 많이 나올듯

그럼 프로그램 소개 들어간다.

매번 그렇듯, 설치 파일은 맨 하단에 , 소스코드 요청은 댓글로~

제발 비밀글좀 쓰지 말아주셨으면 ㅋㅋ 로그인해야한단 말여요 ㅋㅋㅋ



뭐 메인 화면은 심플하다 ㅋㅋ

커다래봐야 어디다 쓰겠는가 공간만 잡아먹지 ㅋㅋ

매우 직관적으로 만들었다.

동시에 누르고 싶은 버튼수를 조기 위에서 써주고 Select 버튼을 눌르면 화면이 투명해 지면서 누르고 싶은 데를 눌러달라고 한다.


요론 메세지 박스가 뜨고 확인을 눌르면 시작한다.


그럼 이렇게 화면이 투명해 지면서 자동으로 눌르고 싶은 점을 눌러준다.

그럼 화면에 저렇게 빨간색 동그라미가 생길 것이다 ㅋㅋ

내가 잘 눌렀는지 잘못눌렀는지 확인하는 용도 ㅋㅋㅋ

처음에 설정한 갯수가 다 찍혔으면 확인을 하고 다시 한번 마우스 왼쪽 클릭하면 원래의 어플리케이션 화면이 나올 것이다.

그 후에 Go 버튼을 눌르면 전광석화와 같은 속도로 내가 지정해준 두 포인트를 타탁 하고 눌러준다 ㅋㅋ

눈에 보이지도 않는다.

그럼 어떻게 이용되는지 한번 볼까??


인터넷창 네개를 띄워놓고 MI SyncMouse 프로그램을 이용해서 종료 버튼에 동그라미 4개를 찍어주었다 ㅋㅋ

그후에 다시 GO 버튼을 눌러서 실행을 해보았다. ㅋㅋㅋ


번개같은 속도로 빠르게 꺼졌다 ㅋㅋㅋ

이런 용도로 필요하신 분들에게 큰 도움이 되었으면 한다 ㅋㅋ



소스코드는 댓글로 요청하세요~

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by J.Bear

하루만에 업데이트 했습니다.



Version 1.0.0 의 보고된 오류와 1.1.0 에서 수정된 사항

1. 높은 전송 속도로 들어오는 데이터의 경우, 그래프를 그대로 모두 표시 함으로 인해 데이터 표시가 밀리던 현상.
    (하지만 큐를 사용하였기 때문에 저장 할때 데이터의 손실은 없음)

-> DownSampling Option 을 추가함으로써, 데이터 밀림 현상을 사용자가 조절할수 있도록 함.

2. 디스커넥트 후에 다시 커넥트를 누를경우 발생하는 Exception

-> 처리

3. Tx 모드를 헥사와 아스키로 구분하여 원하는 포멧으로 보낼수 있게 수정

4. 좌측 상단에 프로그래스 바를 이용하여 얼마나 데이터가 큐에 남아서 디스플레이 되고있지 않은지를 표시
   마우스를 해당 프로그래스바 Label 위로 가져갈 경우 숫자로도 볼수 있음.

5. 클리어 버튼을 눌를경우 텍스트 박스와 그래프의 디스플레이 큐를 초기화

6. 프로그래스 바의 색상 변경

7. 리시브 데이터 디스플레이 모드에 ASCII 모드를 추가

8. 저장 옵션에 ASCII 모드 추가

9. History 를 실행중에 변경할때 간헐적으로 발생하던 Exception 처리

10. 스페이스 공란을 구분자로 하여 여러 바이트의 TX 데이터를 보낼수 있게 함.

11. Disconnect 를 하지않고 프로그램을 종료할때 발생하던 Exception 처리 (쓰레드가 종료되지 않고 꺼지면서 발생하는 에러)



Version 1.1.0 에서 남아있는 오류

1. 10분이상 데이터를 계속 그래프로 디스플레이할경우 그래프 객체가 엑스박스가 뜨면서 죽어버리는 문제.
   -> 해결 못함. 하지만 이때도 데이터의 손실은 없음, 텍스트 박스는 제대로 표시됨. 저장시 데이터는 모두 저장됨.
    (HELP)



개발 초창기 잦은 Invoke 로 문제가 발생하여 다른방식으로 데이터를 넘겼는데 이것때문에 컬렉션 접근에 문제가 생기는 것인가????

잘 모르거따 진짜로 ㅠㅠ

아래는 1.1 버젼 설치파일

소스코드 필요하신분은 아래 댓글로 ㅋ

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by J.Bear
여러가지 에러를 분석 하고 해석하고 얼추 쓸만한 정도로 만들었다.

뭐 별로 대단한 기능은 아니지만, 그동안 공부했던 개념들을 자체적으로 확인 및 정리하기에는 굉장히 유용했다고 생각한다.

UI 는 매우 직관적이므로 크게 설명할 부분은 없을 듯 싶다.

방금 끝내서 설치/배포 파일을 만든터라 코드를 다시 설명하고 싶지는 않다.

문제는 그래프를 뿌릴때 원래는 다운샘플링을 해서 뿌려야 되는데 들어오는 족족 잡아다가 다 뿌리다 보니 문제가 생겼다.

또 처음에 invoke 를 너무 해대다 보니 종료할때 오류가 생기기도 했고.

딱 정해진 해드웨어에서 받는 경우라면 다운샘플링을해서 문제가 없도록 하겠지만, 이것은 범용적으로 만들 계획이였어서  아직 적용하지 않았다.

하지만 텍스트 박스 업데이트나, 그래프 업데이트를 모두 쓰레드화 시켜놓음으로써 최상의 퍼포먼스를 뽑아낼수 있게 신경 썼다.

16진수 10진수 모두 디스플레이 가능하다.

텍스트로 저장할수있는 옵션이 있으며, 그래프의 히스토리 길이도 조절할수 있고 (물론 길게 잡을수록 더 데이터 표시가 밀릴것이다.) 그래프 캡쳐도 할수있다.

그래프 기능 On/Off 버튼을 만들어 놓았다. 그래프를 끄면 실시간으로 데이터 모두 뿌려준다.
이것은 디버깅 모드에서 큐에 남아있는 데이터를 확인하였기때문에 확실하다.

데이터 실시간으로 보고싶은 사람을 끄길 바란다.

실시간은 아니지만 데이터가 잘 들어오는지 아닌지 그림을 보고 싶은 경우에는 그래프를 켜서 보면 유용할것이다. 

디스플레이는 안되더라고 큐에 데이터는 모두 가지고 있기때문에 데이터를 잃어버리지 않으므로 안심하고 쓰면된다.


TX 기능은 구현은 했는데 너무 힘들어서 확인을 안했다.

나중에 버젼업할때 다시 봐야겠다.

관련학과 학부생, 대학원생들에게는 꽤나 쓸만하지 않을 까 싶다. 

 


이것이 인터페이스다

인터페이스라고 할것도 없다.

걍보면 뭐가 머하는건지 다 알수 있다 ㅋㅋㅋ

 

 

 
위에가 작동 화면들이다.

그래프를 계속 틀어놓으면 이렇듯 다 디스플레이를 못하고 데이터가 밀린다. ㅋ

하지만 큐에는 제대로 다 들어가있고

Disconnect 를 눌렀을때 위와같은 도움말이 뜬다.

아래 프로그래스 바가 큐에 남은 데이터를 얼마나 디스플레이했는지 알려준다.

데이터 저장은 Diconnect 를 눌른 후에 버튼이 활성화 되며, 10진수 16진수로 입맛따라 골라가며 저장이 가능하다.

아래는 프로그램이다.

용량도 얼마 안하니까 관심있는 분들은 다운로드 받아서 써보길 바란다.

안된다고 원망말고, 에러나 오류 있으면 댓글로 부탁한다.

시간날때 고쳐볼테니 ㅠㅠ ㅋㅋㅋ 

혹시 그래픽 디잔인을 좀 해주실분 있으면 메일이나 댓글 바란다 ㅋㅋㅋ 

소스코드가 필요한 사람도 댓글 바란다.

 

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by J.Bear

이틀에 걸쳐서 완성했습니다.

C# 이란 프로그램이 객체 지향으로 굉장히 쉽고도 강력한 기능을 제시해 준다고 하여 공부를 시작했었지요 ㅋ

사실 Labview 라는 강력한 프로그램이 있고, 신호처리 부분에서도 Matlab 이라는 강력한 프로그램이 있기에 크게 도움이 되지는 않을거라고 생각했었지만 윈도우 프로그래밍도 하나정도 할줄 알면 큰 도움이 될것이라는 생각에서 시작했었습니다.

어느정도 되었다고 생각하고 자체 프로젝트를 진행하기로 마음먹고
무엇을 할까? 하다가 Radix-4 FFT 를 구현해서 그래프로 표현해 주는 프로그램을 만들기로 하였습니다.

위에서 언급한 프로그램들이 있다면 내장함수를 이용해서 간단하게 실험해 볼수 있지만, 사용하지 않으시는 다른 분야의 연구자들은 간단한 주파수 분석을 하여 주파수 분포가 어느쪽에 대략적으로 위치하는지 확인해 보고 싶으신 경우가 있을것이라고 생각했습니다 ㅋ

사실 저도 머 학부때 위의 프로그램들을 잘 사용하던 것은 아니였으니까요 ㅋㅋㅋ

그리고 가장 큰 생각은!! ㅋㅋ

혹시나 Radix 4 FFT 구현해 오라고 숙제 내주시는 교수님들 때문에 네이버 검색하다가 이 홈페이지에 들어오게 되지 않을까 하는 나의 바램? ㅋㅋ
(굉장히 조회수에 신경쓰는 멘트네 ㅋㅋㅋ)


ㅋㅋ

여튼 일단 사진 부터 ㅋㅋ



대충 요로코롬 생겼답니다 ㅋㅋ

사실 제가 처음이 C++ 로 이것을 구현했을 때는 FFT 포인트수가 높아질 때 발생하는 Stack Overflow 를 막기 위해서 메모리를 할당하고 사용하였어요 ㅋㅋ

무적의 함수 malloc ! ㅋㅋ

근데 C# 에서 가비지 컬렉션 개념이 도입되면서 new 라는 명령어로 배열에 heap 메모리를 할당해 주어야 한답니다 ㅋ

사실 배열로 해도되고 List 로 해도되고 ㅋ

뭐 여타 컬렉션을 아무거나 사용해도 문제는 없지요 ㅋ

근데 여기서는 배열로 한번 해보았어요 ㅋ 배열을 사용하는 방법이 기존의 C 에서 선언하고 사용하던것과 는 달라서 연습좀 해볼려고 ㅋㅋ

또 문제는 typedef 가 안된다는것 ㅋㅋ

struct 로 선언해놓고 typedef 처럼 사용할수 있어용 ㅋㅋ 자세한거는 나중에 C# 강의에서 설명해드릴게요 ㅋ

간단하게 말씀드리자면 #define 문을 C# 에서 사용하고 싶으면 Constants 와 같은 클래스를 하나 생성해 놓고
Constants.(  ) 라는 식으로 #define 문을 대신 할 수 있습니다.

Decimation In TIme 방식으로 구현했는데요 저는 재귀함수 콜 형태로 구현했어요 ㅋ

아래에 올려드리는 것은 Radix4 FFT 의 핵심이라할수 있는 부분이지요 ㅋ

Twiddle Factor 를 구해서 값들을 구해가는 알고리즘 ㅋ
자세한것은 이것또한 나중에 DSP 부분 포스팅에서 알려드릴게요 ㅋ



아나 하나도 안보이네 제길 ㅋㅋㅋ

아래는 제가 배포하는 설치 화면 ㅋㅋ



요래요래 설치를 하면 요론 아이콘이 나오지요 ㅋㅋ


ㅋㅋㅋ 아이콘 예뿌네 ㅋㅋㅋ

아래는 설치파일 ㅋㅋ

필요하거나 궁금하신 분을 한번 설치해서 써보세요 ㅋㅋ


test 파일은 제가 코사인 함수파형 저장해 놓은것 ㅋㅋ


아 쓰다보니까 생각이 나네 ㅋㅋ

FFT 포인트 수 바꾸면 안될수도 있을듯 ㅋㅋ 이거 한다면서 하다 말았군 ㅋㅋㅋ
하지만 1024 포인트는 무조건 동작함 ㅋㅋ

나중에 필요한 사람들이 있다고 하면 시간날때 한번 업데이트 버젼을 배포해야겠군 ㅋㅋ
특징점들 잡아서 해당 주파수와 크기를 정확히 알려주는 기능도 좀 추가를 해야겠고 ㅋㅋㅋ

하지만 이것은 연습용이였으니까 ㅋㅋㅋ
정 필요하신 분들이 있다면 댓글로 요청하세용 ㅋ

프로젝트 파일이 필요하신 분들이 있으면 댓글로 멜주소 써서 요청하세요 ㅋ 보내드리겠습니다 ㅋ
걍 C++ 로 해놓은 것도 있으니 그것이 필요하시면 고걸로 드리고 ㅋ
사실 이 코드가 더 잘짠것 같은 느낌인데 ㅋㅋㅋ

여튼 오늘은 여기까지 ㅋㅋ
저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by J.Bear
휴....

전에 C++ 로 Radix 4 FFT 를 구현하였다.

굉장히 잘된다.

갑자기 C# msChart 에 삘이 꽃히는 바람에 C# 으로 구현해서



그래프로 바로 볼수 있다면 좋겠다 라는 생각을 했다.

물론 MATLAB 이라는 멋진 프로그램이 있긴하지만, 그래도 공부한것을 정리해볼겸 ㅋㅋ 시!작!했!다!

근데!!! 망했다. ㅠㅠ ㅋㅋㅋㅋ

C# 은

typedef 도 안되고 ㅋㅋ #define 문도 걍 클래스 하나 만들어서 static 으로 선언해놓고 접근해야하고

메모리 할당도 지가 자동으로 해서 가비지 컬렉션이 알아서 비워준다고하는데

에효 ㅋㅋㅋㅋ

걍 배열쓸껄 이미 컬렉션 연습해본다고 List<> 로 다 짜놨는데 ㅋㅋㅋ 앰뱅 ㅋㅋㅋ

여튼 이게 완성이 되면

신호처리와 프로그래밍을 막 배우려는 사람이나 MATLAB 을 못하거나 안깔려있어서 여건이 안되는 사람들이
간단한 주파수 분석을 해봄에 있어서 비쥬얼적으로 효과적이지 않을까?

특징점들을 검출해서 정보를 알려주는 기능도 추후 버전업을 하면서 구현한다면 꽤 쓸만한 프로그램이지 않을까 싶다.

지금 GUI 는 이렇게 허접하다.

시간이 지나면 ㅋㅋㅋㅋ 똑같이 허접할것 같다 ㅋㅋ

난 미적 감각이 없으니가 ㅠㅠ

혹 미적 감각이 있으신 분들 요론 비슷하게 예쁘게 그림파일로 좀 만들어 주실수 없나용??? 

 [##_http://jbear.tistory.com/script/powerEditor/pages/1C%7Ccfile8.uf@122F93474F14C3400919D2.PNG%7Cwidth=%22630%22%20height=%22460%22%20alt=%22%22%20filename=%22a123123.PNG%22%20filemime=%22image/jpeg%22%7C_##]

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by J.Bear

이전 포스팅에서 에디터 창의 색을 바꾸는 부분을 보여드렸지요?

이번에는 주변의 창 색깔들도 에디터 창에 맞추어 바꾸는 방법을 알려드리겠습니다.

MicroSoft 에서는 이를 할수 있도록 확장팩을 만들어 배포하고있습니다.

MSDN 에서 제공하구요

1. ThemeManagerPackage
2. ProPowerTools


사용법이랄것도 없습니다.

두 확장팩을 설치하고 나면 메뉴가 생성이 되요

거기서 원하는 색깔로 바꾸면 됩니다.

ProPowerTools 같은 경우는 솔루션 탐색기의 색깔을 주변의 색에 맞추어 자동으로 변경해주지요

첨부파일로 올려놓겠습니다.

(나중에 컴터 포멧하면 나도 여기서 다운받아 쓸려고 ㅋㅋㅋㅋ)

Tip !

코드 정의창, 출력 창등의 배경 색깔을 위의 확장팩으로 바뀌지 않습니다.

직접 도구 - 옵션 - 환경 - 글꼴 및 색 에 가셔서
해당되는 메뉴를 찾아서 바꾸셔야합니다.


붉은색 네모 박스를 바꿔가면서 해당되는 곳을 찾으세요 ㅋ

아래는 저의 작업 환경이랍니다.



어둠의 아들 스타일이군요 ㅋㅋㅋㅋㅋ

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by J.Bear

여러분은 Visual Studio 를 어떻게 쓰십니까? ㅋ

저도 흰바탕 쓰다가 계속 쓰다보니 지겹기도 하고 ㅋㅋㅋ

그래서 변화를 좀 주었지요 ㅋㅋ

http://studiostyl.es

라는 사이트에 가시면 여러가지 테마를 무료로 다운로드 받을 수 있습니다.

여기에 가시면 전세계의 프로그래머들이 선호하는 테마를 보실 수가 있습니다 ㅋㅋ

투표를 해 놓았거든요 ㅋㅋ

1위는 Son of Obsidian : 흑요석의 후예

정도로 해석 가능하겠군요 ㅋㅋ

저도 그 테마로 적용해 보았습니다 ㅋㅋ


맘에 드시나요? ㅋ

C# 을 작성할때 이런식으로 나옵니다 ㅋ

브레이크 포인트 걸었을때 하잍라이트도 예뿌게 되더군요 ㅋㅋ

파일은 제가 첨부하도록 하죠~

하는 방법은 다른 네이버 뒤져보시면 쉽게 알수있으니 생략하도록 하겠습니다.

참고로 글자체는

전세계 프로그래머들이 선호하는 글자체 1등인

Bitstream Vera Sans Mono 체 입니다 ㅋ

이것도 쉽게 구하실수 있어요 ㅋㅋ

근데 영 안맞다고 하시는 분들도 많고 ㅋㅋ

취향 따라 가는거죠 머 ㅋㅋㅋ


저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by J.Bear