통계 프로그램 의뢰를 받아서, 자료를 찾고 있었다.

전에 .net 에서는 cahrtFX을 이용하여 프로그램을 했었는데,

지금은 php 로 빨리 끝내기 위해서 챠트를 찾던 중 파나 챠트를 알게 되었다.

phpschool에서나 sir 사이트에서 설명이 되었는데, 그 대로 할 경우 한글 적용이 제대로 되지 않았다.

그래서 조금 수정하여 적용하였다.

우선 panachart는

http://sourceforge.net/projects/panachart/ 

에서 다운 받는다.

조건은 GD 라이브러리가 필요한데, gnu 보드나 제로 보드가 설치될 경우는 100% 적용될 것이다.

why? 로봇 방지 기능에 이미지 텍스트 기능(? 맞나?) 을 지원하기 때문에 다 지원된다고 생각하면 된다.

그리고 한글을 사용하기 위해서 imagettftext 함수를 사용한다.

이 함수는 http://php.mirror.camelnetwork.com/manual/kr/function.imagettftext.php 

이곳에 잘 설명되어 있다.

그래서 phpschool 과 sir.co.kr 사이트에서 설명대로 할 경우 에러가 발생한다.

http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=29645&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%C2%F7%C6%AE&sop=and

http://sir.co.kr/bbs/board.php?bo_table=pl_php&wr_id=330&page=7

------------------- 에러 메시지 -------------------------
<br /> <b>Warning</b>: Unexpected character in input: '\' (ASCII=92) state=1 in <b>C:\APM_Setup\htdocs\panachart\panachart.php</b> on line <b>289</b><br /> <br /> <b>Parse error</b>: syntax error, unexpected ']', expecting T_STRING or T_VARIABLE or T_NUM_STRING in <b>C:\APM_Setup\htdocs\panachart\panachart.php</b> on line <b>358</b><br />

--------------------- 해결 방법 ------------------------------------
$font = 'gulim.ttc';
 
  if($this->m_title){
   imagettftext (
     $this->m_image,
     $this->m_font,
     0,
     ($this->m_width-strlen($this->m_title)*$this->m_fontWidth)/2,
     $margin + 10,
     $this->m_textColor, $font, iconv("EUC-KR","UTF-8",$this->m_title) );

변경하면 된다.

이것을 찾기 위해서 1시간 투자했다.

펌은 자유이고, 출처 표시는 해주세요~~

Posted by 노을지기
ProcessStartInfo 클래스

프로세스를 시작할 때 사용하는 값 집합을 지정합니다.

네임스페이스: System.Diagnostics
어셈블리: System(system.dll)

Visual Basic(선언)
Public NotInheritable Class ProcessStartInfo
Visual Basic(사용법)
Dim instance As ProcessStartInfo
C#
public sealed class ProcessStartInfo
C++
public ref class ProcessStartInfo sealed
J#
public final class ProcessStartInfo
JScript
public final class ProcessStartInfo
Note참고

이 클래스에 적용되는 HostProtectionAttribute 특성의 Resources 속성 값은 SharedState | SelfAffectingProcessMgmt입니다. HostProtectionAttribute는 대개 아이콘을 두 번 클릭하거나, 명령을 입력하거나, 브라우저에서 URL을 입력하여 시작되는 데스크톱 응용 프로그램에 영향을 미치지 않습니다. 자세한 내용은 HostProtectionAttribute 클래스나 SQL Server 프로그래밍 및 호스트 보호 특성을 참조하십시오.

ProcessStartInfoProcess 구성 요소와 함께 사용됩니다. Process 클래스를 사용하여 프로세스를 시작하면 실행 프로세스에 연결할 때 사용할 수 있는 정보뿐 아니라 프로세스 정보에도 액세스할 수 있습니다.

시작한 프로세스를 자세히 제어하기 위해 ProcessStartInfo 클래스를 사용할 수 있습니다. 사용자는 적어도 생성자를 사용하거나 수동으로 FileName 속성을 설정해야 합니다. 파일 이름은 임의의 응용 프로그램 또는 문서입니다. 여기서 문서는 열기 동작 또는 기본 동작과 관련된 파일 형식으로 정의됩니다. 운영 체제에서 사용할 수 있는 폴더 옵션 대화 상자를 사용하여 컴퓨터의 등록 파일 형식과 관련 응용 프로그램을 볼 수 있습니다. 고급 단추를 누르면 특정 등록 파일 형식과 관련된 열린 작업이 있는지 여부를 보여 주는 대화 상자가 나타납니다.

또한 해당 파일을 사용하여 수행할 작업을 정의하는 다른 속성을 설정할 수 있습니다. Verb 속성에 대해 FileName 속성의 형식에 해당하는 값을 지정할 수 있습니다. 예를 들어, 문서 형식에 대해 "인쇄"를 지정할 수 있습니다. 뿐만 아니라 Arguments 속성 값이 파일의 열린 프로시저에 전달할 명령줄 인수가 되도록 지정할 수 있습니다. 예를 들어, FileName 속성에 텍스트 편집기 응용 프로그램을 지정하면 Arguments 속성을 사용하여 편집기가 열 텍스트 파일을 지정할 수 있습니다.

표준 입력은 대개 키보드이고, 표준 출력과 표준 오류는 대개 모니터 화면입니다. 그러나 RedirectStandardInput, RedirectStandardOutputRedirectStandardError 속성을 사용하여 프로세스가 파일이나 기타 장치에서 입력을 받거나 출력을 반환하도록 할 수 있습니다. Process 구성 요소에서 StandardInput, StandardOutput 또는 StandardError 속성을 사용할 경우 우선 ProcessStartInfo 속성에 해당 값을 설정해야 합니다. 그렇지 않으면 스트림을 읽거나 쓸 때 예외가 throw됩니다.

UseShellExecute를 설정하여 운영 체제 셸을 사용하여 프로세스를 시작할 것인지 여부를 지정합니다.

프로세스가 시작될 때까지는 ProcessStartInfo 속성의 값을 변경할 수 있습니다. 프로세스를 시작한 다음에는 이러한 값을 변경해도 효과가 없습니다.

Note참고

이 클래스에는 모든 멤버에 적용되는 클래스 수준의 링크 요청이 포함되어 있습니다. 직접 실행 호출자에게 완전 신뢰 권한이 없으면 SecurityException이 throw됩니다. 보안 요청에 대한 자세한 내용은 링크 요청을 참조하십시오.

Visual Basic
Imports System
Imports System.Diagnostics
Imports System.ComponentModel


Namespace MyProcessSample
    _
   '/ <summary>
   '/ Shell for the sample.
   '/ </summary>
   Class MyProcess 
      '/ <summary>
      '/ Opens the Internet Explorer application.
      '/ </summary>
      Public Sub OpenApplication(myFavoritesPath As String)
         ' Start Internet Explorer. Defaults to the home page.
         Process.Start("IExplore.exe")
         
         ' Display the contents of the favorites folder in the browser.
         Process.Start(myFavoritesPath)
      End Sub 'OpenApplication
       
      
      '/ <summary>
      '/ Opens urls and .html documents using Internet Explorer.
      '/ </summary>
      Sub OpenWithArguments()
         ' url's are not considered documents. They can only be opened
         ' by passing them as arguments.
         Process.Start("IExplore.exe", "www.northwindtraders.com")
         
         ' Start a Web page using a browser associated with .html and .asp files.
         Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
         Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
      End Sub 'OpenWithArguments
      
      
      '/ <summary>
      '/ Uses the ProcessStartInfo class to start new processes, both in a minimized 
      '/ mode.
      '/ </summary>
      Sub OpenWithStartInfo()
         
         Dim startInfo As New ProcessStartInfo("IExplore.exe")
         startInfo.WindowStyle = ProcessWindowStyle.Minimized
         
         Process.Start(startInfo)
         
         startInfo.Arguments = "www.northwindtraders.com"
         
         Process.Start(startInfo)
      End Sub 'OpenWithStartInfo
       
      
      Shared Sub Main()
         ' Get the path that stores favorite links.
         Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
         
         Dim myProcess As New MyProcess()
         
         myProcess.OpenApplication(myFavoritesPath)
         myProcess.OpenWithArguments()
         myProcess.OpenWithStartInfo()
      End Sub 'Main 
   End Class 'MyProcess
End Namespace 'MyProcessSample
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    /// <summary>
    /// Shell for the sample.
    /// </summary>
    class MyProcess
    {
       
        /// <summary>
        /// Opens the Internet Explorer application.
        /// </summary>
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");
                    
            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
 
        }
        
        /// <summary>
        /// Opens urls and .html documents using Internet Explorer.
        /// </summary>
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");
            
            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }
        
        /// <summary>
        /// Uses the ProcessStartInfo class to start new processes, both in a minimized 
        /// mode.
        /// </summary>
        void OpenWithStartInfo()
        {
            
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;
            
            Process.Start(startInfo);
            
            startInfo.Arguments = "www.northwindtraders.com";
            
            Process.Start(startInfo);
            
        }

        static void Main()
        {
                    // Get the path that stores favorite links.
                    string myFavoritesPath = 
                    Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
                
                    MyProcess myProcess = new MyProcess();
         
            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();

               }    
    }
}
#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

/// <summary>
/// Opens the Internet Explorer application.
/// </summary>
void OpenApplication( String^ myFavoritesPath )
{
   
   // Start Internet Explorer. Defaults to the home page.
   Process::Start( "IExplore.exe" );
   
   // Display the contents of the favorites folder in the browser.
   Process::Start( myFavoritesPath );
}


/// <summary>
/// Opens urls and .html documents using Internet Explorer.
/// </summary>
void OpenWithArguments()
{
   
   // url's are not considered documents. They can only be opened
   // by passing them as arguments.
   Process::Start( "IExplore.exe", "www.northwindtraders.com" );
   
   // Start a Web page using a browser associated with .html and .asp files.
   Process::Start( "IExplore.exe", "C:\\myPath\\myFile.htm" );
   Process::Start( "IExplore.exe", "C:\\myPath\\myFile.asp" );
}


/// <summary>
/// Uses the ProcessStartInfo class to start new processes, both in a minimized 
/// mode.
/// </summary>
void OpenWithStartInfo()
{
   ProcessStartInfo^ startInfo = gcnew ProcessStartInfo( "IExplore.exe" );
   startInfo->WindowStyle = ProcessWindowStyle::Minimized;
   Process::Start( startInfo );
   startInfo->Arguments = "www.northwindtraders.com";
   Process::Start( startInfo );
}

int main()
{
   
   // Get the path that stores favorite links.
   String^ myFavoritesPath = Environment::GetFolderPath( Environment::SpecialFolder::Favorites );
   OpenApplication( myFavoritesPath );
   OpenWithArguments();
   OpenWithStartInfo();
}

System.Object
  System.Diagnostics.ProcessStartInfo
이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0에서 지원
Posted by 노을지기

출처 : http://blog.naver.com/lonlykia/36515501

내 USB에 PDA를 넣고 다니다가 아무 피씨에서나 사용^^

MojoPac이 유행이긴 해도 … 이건 Portable PDA / USB

참조한곳 ::

원저자의 홈피 : http://www.furrygoat.com/2005/09/portable_ce_20.html

여긴 좀더 재밌는게 http://www.furrygoat.com/embedded/

clip_image001clip_image002

한글판과 영문판

(영문판은 DeviceEmulator050419.msi을 설치하면 나온다)

  PPC_2003_SE_WWE_ARMv4.bin

  SP_2003_SE_WWE_ARMv4.bin (스마트 폰)

자 시작!!!

1. 설치할 폴더를 PC 하드에 만든다. 본 예에선 DeviceEmulator로 만듬.

그리고 그밑에 다음 폴더를 추가로 만듬.

OS_ROM_File  (OS 이미지 화일용 폴더)

Apps               (PDA에서 외부 Storage Card로 인식하고 PC <–> PDA 간 화일교환)

State              (종료시 PDA상태 저장용)

clip_image003

2. 아래 경로에서 DeviceEmulator050419.msi를 다운한다.

http://www.ppcdemon.com/index.php?option=com_remository&Itemid=27&func=select&id=34&orderby=3

참고: 사이트 다른곳 : http://netghost.ru/download/ppc/

3. 설치시작 –

다운 받은 DeviceEmulator050419.msi를 설치한다.

더불클릭으로 하면 안됨. 아래처럼 할것

윈도 : 시작 - 실행창 - cmd ( 엔터)

      msiexec /a DeviceEmulator050419.msi (엔터)

풀어놓을 위치를 물어 보면, 아까 만든 폴더인 DeviceEmulator를 선택!

4.추가 보조 화일 다운 받는다.

http://www.jsifaq.com/docs/files/76011/snetcfg.zip

http://www.furrygoat.com/Software/pce2.cmd.txt

이들을 압축화일은 DeviceEmulator폴더에 압축풀어 넣고 pce2.cmd.txt는 pce2.cmd로 이름 변경하여 넣는다.

5. pce2.cmd 수정 (Emulator 롬 이미지와 화면크기)

롬이미지의 화일의 상대경로만 적는다. 즉 DeviceEmulator폴더 밑의 경로만(화일명 포함) 여기선 \oS_ROM_file\OS_ROM.bin

clip_image004

화면 크기 640×480x16이 기본이고 이대로 사용해되 되나,

     PDA뽀다구는 240×320x16으로 수정하면 ^^됨.

clip_image005

6. 지금 까지가 진행된 모습.

clip_image006

7.한글 PPC2003 이미지 얻기.

http://www.microsoft.com/downloads/details.aspx?familyid=EEC33AE3-C129-4C25-ABAA-18E8E842178F&displaylang=en

이링크에서 “continue”를 누르면 됨. 여기서 한국어판을 다운 받는다

이름이 Windows Mobile 5.0 Emulator Images for Pocket PC - KOR.msi 이고

크기는 100메가정도.

공백없는 화일명으로 변경한다 (msiexec 의 오류때문) image.msi로 변경.

더불클릭으로 하면 안됨, 반드시 아래와 같이 따라할것 !!!!!

윈도 : 시작 - 실행창 - cmd ( 엔터)

     msiexec /a image.msi (엔터)   [암호 물어보걸랑 숫자 "1"만 쭉 넣는다]

그러면 Windows Mobile 5.0 Emulator Images for Pocket PC - KOR라는 폴더가 생기고 그 아래 찾아보면 다음과 같은 이미지 화일 (확장자가 *.bin) 4개를 얻는다.

clip_image007

GSM은 GPS버전, VR은 전화기(?), VGA는 화면 크기가 640×480인것이다.

여기서 PPC_KOR.bin을 OS_ROM.bin로 이름을 변경하여

DeviceEmulator 폴더 아래의 OS_ROM_file 폴더에 복사해 넣는다.

8.실행하기 :

DeviceEmulator 폴더 아래의 pce2.cmd 더불클릭 !!

시스템 성능에 따라 약간의 시간이 경과한후 PDA 나타난다..

혹, 네트웍 관련 어쩌구하는 에러나오면 무시!

참고로, 한글판이나 Windows Mobile 5.0는 속도가 좀 느리다

노스우드 펜2.4에서도 좀 버벅 거리는 듯…

실행모습들 …

clip_image008clip_image009

화면 크기가 640*480인것 :한글 PPC2003 실행

clip_image010

(그냥 옆으로 퍼진 화면일 뿐…)

9. USB스틱에 DeviceEmulator 폴더 내용을 모두 복사한후 거기서

pce2.cmd 실행해도 !

추신: 본문 펌 허가로 변경하였습니다. 댓글남기시고 퍼가심 되겠슴다

댓글은 스팸때문에 로긴한 분만 허용입니다 ^^

추신 2; DeviceEmulator050419.msi 화일을 받지 못하시는 분들을 위해 필요없는 롬 이미지를 제외한 응용프로그램 폴더만 압축해서 올려 놓았습니다. 압축풀어 사용하시면 될듯 (시험해보지 않았으므로 …) 합니다. 이후 위절차중 “7″번 부터 따라하시면됩니다 .

추신 3: USB PDA에서 인터넷 접속 :  http://blog.naver.com/lonlykia/36528014

추신 4: ActiveSync 사용법 추가 : http://blog.naver.com/lonlykia/38368283

추신5″ : 내용이 헷갈리시거나 설치가 곤란한 분은 투데이스에 제글을 올리신 분이 모든 과정을 완료한 작업 완료화일을 올려 두셨군요. 이걸 받아서 압축 풀고 실행하시면 위의 복잡한 과정 필요없이 됩니다. 아래 링크에서 다운 받으시기 바랍니다

===================

혹시 사용해 보고 싶다면http://ftp6.ohpy.com/up/elbbs/2007/06/02/50097/1180750372/pocket.zip
http://ftp6.ohpy.com/up/elbbs/2007/06/02/50097/1180750641/pocket.z01
다운 반아 압축을 풀고 start.cmd 실행하세요.
=======================

Posted by 노을지기

학부생 프로젝트를 하는데, 캠 두개가 연결해서 사용하기가 어렵다고 한다.

이유인 즉, 카메라 선택시 다이얼로그 창이 보이면서 캠을 선택해야했다.

우리는 자동으로 시작해야 하기 때문에 이 창이 필요없었다.

그래서 구글 신을 검색한 결과 쓸만한 소스를 구하여 돌려 보니 두개가 작동하였다.

조금만 수정하면 쉽게 사용할 수 있을 것이다.. 고생해랏!! 현석아!!

======================================================
출처 : http://groups.google.co.uk/group/OpenCV/msg/0de2e5945ce5ba65

#include "stdafx.h"
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include "cvcam.h"

void callbackStereo(IplImage* image1,IplImage* image2)
{
        // Do your Image Processing Code here.

}

int _tmain(int argc, _TCHAR* argv[])
{
        int cvCamOne,cvCamTwo;
        int height=240;
        int width=320;
        cvNamedWindow("Camera 1",1);
        cvNamedWindow("Camera 2",1);
        HWND hwnd1 = (HWND)cvGetWindowHandle("Camera 1");
        HWND hwnd2 = (HWND)cvGetWindowHandle("Camera 2");
        int numCams = cvcamGetCamerasCount();

        cvcamSetProperty(0,CVCAM_PROP_ENABLE,&cvCamOne);
        cvcamSetProperty(0,CVCAM_PROP_RENDER,&cvCamOne);
        cvcamSetProperty(0,CVCAM_PROP_WINDOW,&hwnd1);
        cvcamSetProperty(0,CVCAM_STEREO_CALLBACK,callbackStereo);
        cvcamSetProperty(0,CVCAM_RNDWIDTH,&width);
        cvcamSetProperty(0,CVCAM_RNDHEIGHT,&height);

        cvcamSetProperty(1,CVCAM_PROP_ENABLE,&cvCamTwo);
        cvcamSetProperty(1,CVCAM_PROP_RENDER,&cvCamTwo);
        cvcamSetProperty(1,CVCAM_PROP_WINDOW,&hwnd2);
        cvcamSetProperty(1,CVCAM_STEREO_CALLBACK,callbackStereo);
        cvcamSetProperty(1,CVCAM_RNDWIDTH,&width);
        cvcamSetProperty(1,CVCAM_RNDHEIGHT,&height);

        cvcamInit();
        cvcamStart();

        cvWaitKey(0);
        cvcamStop();
        cvcamExit();
        return 0;

}
Posted by 노을지기

출처 : http://eroom.korea.com/post/board.aspx?bid=bun_273698&mode=read&view=board&pid=504409&cate=1540717&page=1

 

AVR-GCC 에 내장된 함수들을 이용하여 시리얼 통신을 하는 프로그램을 작성합니다.


이번 강좌에서는 내장함수 putchar(), puts(), printf() 를 사용하겠습니다.

위의 함수들은 표준 (ANSI) C 에서는 표준출력장치(모니터) 로 문자와 문자열을 출력하는 함수입니다.

AVR-GCC 에서는 이 함수들을 시리얼 통신으로 문자와 문자열을 출력하는 함수로 사용하기 위하여 터미널 출럭 드라이버를 설정하여야 합니다.

아래의 프로그램에서 int uart_putchar(char c) 함수가 이 역할을 합니다.


main() 함수의 fdevopen(uart_putchar, 0, 0) 는 stdio.h 파일에서 다음과 같이 선언되어 있습니다.

extern FILE *fdevopen(int (*__put)(char), int (*__get)(void), int __opts);


fdevopen() 함수는 내장함수(putchar(), puts(), 등등) 와 출력 드라이버 함수 (uart_putchar()) 를 연결시켜 줍니다.


// I/O register definitions for ATmega8515
#include <avr/io.h>
#include <stdio.h>

int uart_putchar(char c)
{

    if (c == "\n")
        uart_putchar("\r");
    loop_until_bit_is_set(UCSRA, UDRE);
    UDR = c;
    return 0;
}

int main(void)
{       
    FILE *fp;

    fp = fdevopen(uart_putchar, 0, 0);

    outp(0x18,UCSRB);
    outp(5,UBRRL);        // X-Tal=11.0592MHz BAUD=115200

    printf("Hello ");
    putchar(" ");
    puts("World !!!\n\r");

    fclose(fp);
    while(1);
}

Posted by 노을지기