/*
 * namespace(c#) & package(java)
 * java에서 package는 c#에서 namespace와 같은 keyword이다.
 * direct make class에서 direct make class를 호출(public,static 주의)
 */

/* ConsoleKeyInfo 클래스를 사용할경우
   ConsoleKeyInfo keyInfo;

   keyInfo=Console.ReadKey(true);

   if(keyInfo.Key==ConsoleKey.RightArrow) xpos++;
   if(keyInfo.KeyChar=='+') timer.Interval += 10;
   if(keyInfo.KeyChar=='-') timer.Interval -= 10;
*/


using System;
using System.IO;
using System.Timers;
using Kingdom;

namespace Kingdom
{
  class Program
  {
    static void Main(string[] args)
    {
      episode pro = new episode();
      pro.running();
    }
  }

  class episode
  {
    DateTime now;
    ConsoleKey key;
    Timer timer;
    int xpos,ypos;

    public void running()
    {

      int toggle=0;

      timer=new Timer();
      timer.Interval=1000; /*1 Second*/
      timer.Elapsed += new ElapsedEventHandler(time_elapsed_func);
      timer.Start();

      xpos=ypos=0;

      WriteLog("Start");
      while(true)
      {
        key=Console.ReadKey(true).Key;
        if(key==ConsoleKey.RightArrow) xpos++;
        else if(key==ConsoleKey.LeftArrow) xpos--;
        else if(key==ConsoleKey.UpArrow) ypos++;
        else if(key==ConsoleKey.DownArrow) ypos--;
        else if(key==ConsoleKey.Escape) break;
        else if(key==ConsoleKey.Enter)
        {
          if(toggle==0)
          {
             timer.Stop();
             toggle=100;
             WriteLog("Time stop");
         }
         else
         {
             timer.Start();
             toggle=0;
             WriteLog("Time restart");
         }
       }
       WriteLog("Key");
      }//end of while
      WriteLog("Stop");
      timer.Stop();
    }

    public void time_elapsed_func(object sender, ElapsedEventArgs e)
    {
        ypos++;
        WriteLog("Time");
    }

    public void WriteLog(string msg)
    {
      now=DateTime.Now;
      Console.Write(now.ToString("yyyy-mm-dd hh:mm:ss") + "  Event:" + msg + "----------------");
      Console.WriteLine("Index;["+ypos+","+xpos + "]");
    }
  }
}//end of namespace;

KRX시장시스템
용어정리
- 채널(CH), 매칭,대량매칭(ME), 매매,트랜잭션(TR)

유가>
증권사 원장관리 시스템<->
증권사(매도주문)->채널->매칭->매매지원->정보분배->증권사(체결,호가등)
증권사(매수주문)->채널->매칭->매매지원->정보분배->증권사(체결,호가등)

코스닥>
증권사 원장관리 시스템<->

증권사(매도주문)->채널->매칭->매매지원->정보분배->증권사(체결,호가등)
증권사(매수주문)->채널->매칭->매매지원->정보분배->증권사(체결,호가등)

코넥스>
증권사 원장관리 시스템<->

증권사(매도주문)->채널->매칭->매매지원->정보분배->증권사(체결,호가등)
증권사(매수주문)->채널->매칭->매매지원->정보분배->증권사(체결,호가등)

 

                  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

매매체결          준비작업

청산결제          준비작업

정보분배          준비작업

시장감시          준비작업

                  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

매매체결              시스템점검

청산결제              시스템점검

정보분배              시스템점검

시장감시              시스템점검

                  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

매매체결                        호가접수 & 매매체결 & 회원사데이타 제공

청산결제                        실시간,배치 데이타 송수신

정보분배                        시장데이타 수신,가공,분배

시장감시                        불공정거래적출

                  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

매매체결                                                                   배치작업

청산결제                                                                   배치작업

정보분배                                                                   배치작업

시장감시                                                                   배치작업

#증권정보 실시간데이타 웹페이지에 구현

#거래소,코스닥,코넥스 호가,체결,거래원정보는 실시간으로 웹페이지에 표시되어야 한다.
- 대상단말 : 로그인되어 있는 사용자

1. 거래소 & Koscom데이타 -> RcvTData -> RcvQData -> Shared Memory
1.1 체결데이타 수신시, SendQData로 Ack신호
1.2 호가데이타 수신시, SendQData로 Ack신호
1.3 거래원데이타 수신시, SendQData로 Ack신호
1.4 지수데이타 수신시, SendQData로 Ack신호

2. Shared Memory -> SendQData(Ack신호를 받으면) -> WebSocket -> WebBrowser

Continue,


#C (프로그래밍 언어) 개요

C는 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 일할 당시 새로 개발된 유닉스 운영 체제에서 사용하기 위해 
개발한 프로그래밍 언어이다. 
켄 톰슨은 BCPL언어를 필요에 맞추어 개조해서 "B"언어(언어를 개발한 벨 연구소의 B를 따서)라 명명했고, 
데니스 리치가 이것을 개선하여 C 언어가 탄생했다. 
유닉스 시스템의 바탕 프로그램은 모두 C로 작성되었고, 
수많은 운영 체제의 커널 또한 C로 만들어졌다. 
오늘날 많이 쓰이는 C++는 C에서 객체 지향형 언어로 발전된 것이다. 
또 다른 다양한 최신 언어들도 그 뿌리를 C에 두고 있다.

# OS
1. WIndows 10
- c# console hexa code(IDE:editor,Compiler:csc)

frm_hexa_3.cs
0.01MB



- c# window form hexa code(IDE:Visual Studio)

APINFQ0020.cs
0.02MB


- c,c++ console hexa code(IDE:editor,Compiler:gcc)

mainsrc.c
0.00MB
common.h
0.00MB
wincommon.c
0.01MB


- c,c++ window form hexa code(IDE:Visual Studio)

winmainsrc.c
0.01MB
wincommon.h
0.00MB
wincommon.c
0.01MB


- pascal window form hexa code(IDE:DELPHI) 
- javascript web-browser hexa code(IDE:editor)

____real_fast_no_ajax_hexa.html
0.02MB


- java console hexa code(IDE:editor,Compiler:javac)

 

2. Linux(Ubuntu,Centos)
- c,c++ console hexa code(IDE:editor,Compiler:gcc,실행도구:telnet terminal)
- javascript web-browser hexa code(IDE:editor,실행도구:desktop mode)

3. Windows 10 + Linux was(tomcat)
- javascript web-browser network hexa code(feat. AJAX)

# Compiler
1. windows 10 c# console - csc(freeware)
2. windows 10 c# form - visual studio(freeware at private, but company is not free)

3. windows 10 c,c++ console - gcc(freeware)
4. windows 10 c,c++ form - visual studio(freeware at private, but company is not free)

5. windows 10 pascal form - DELPHI (freeware at private, but company is not free)
6. windows 10, Linux javascript - web-browser is OK

 

 

Question into xterm92@naver.com

'헥사' 카테고리의 다른 글

Systehttp://m.Drawing.Color[] colorindex = new Systehttp://m.Drawing.Color[]  (0) 2023.11.29
MM_DRAW()  (0) 2023.11.29

1. 설치 및 기본 명령어
리눅스와 공유정신에 대하여 무엇인지 알아보고 수업간 사용할 가상머신 설치,
원활한 수업을 위한 설정,
실제 명령어를 사용하기 위한 튜토리얼 작업
리눅스 서버를 실습하기 위한 각종 시스템 구성
리눅스에서 사용되는 기본 명령어 학습

2. 기본 명령어
쉘운영의 기본이 되는 파일다루기
확인, 이동, 복사, 생성 등의 작업을 통해 리눅스에서 파일이 가지는 의미를 이해하고 실제 작업 및 확인을 통하여 기본적으로 사용하는 명령어들을 완전 숙지

3. 파이프 및 필터 유저 관리
로컬파일 보안출력결과를 내가 원하는대로 출력하고 원하는 파일로 구성한다.
시스템의 기반이 되는 유저제어를 통해 리눅스에서 유저가 가지는 실제 목적을 파악한다
파일에 권한을 부여하고 사용자들간의 파일 사용을 제한한다.

4. 프로세스 관리 & 디스크 관리
시스템 관리건강한 시스템을 유지하기 위해 프로세스 확인, 관리, 제어의 목적을 가지고 운영레벨에서 시스템을 구성해본다
저장소의 자유로운 사용이 시스템 운영의 필수 요소중 하나이다. 로컬 스토리지를 추가하여 시스템에서 실제 사용 할 수 있도록 학습한다.
systemd / init 프로세스 차이점 확인, 서비스 구동, 부팅 과정 이해

5. 리눅스 네트워크
백업 시스템리눅스를 서버로 사용하기 위한 기본 네트워크 설정
리눅스 기본 기능을 이용한 백업 기능 구현

#Console Hexa, form Hexa by c language

1. Console Hexa

#소스파일첨부

common.c
0.01MB
common.h
0.00MB
mainsrc.c
0.00MB

 

 

#Form Hexa

#소스파일첨부

wincommon.c
0.01MB
wincommon.h
0.00MB
winmainsrc.c
0.01MB

 

/*
#KeyBoard를 이용한 xpos,ypos 증감 프로그램
- 1초당 ypos가 1씩 증가한다.
- LEFT,RIGHT Key를 이용해서 xpos를 1씩 증감한다.
*/

using System;
using System.IO;
using System.Timers;

namespace SimpleConsole
{
  class Program
  {
    const int FAIL=-1;
    const int SUCC=1;
    static int xpos,ypos;
    static System.Timers.Timer timer;

    static void Main(string[] args)
    {
      int ii,kk,ff,rc;

      timer=new System.Timers.Timer();
      timer.Interval=1000;
      timer.Elapsed += new ElapsedEventHandler(time_elapsed_func);
      timer.Start();

      ConsoleKey key=ConsoleKey.NoName;
      Init();
      while(true)
      {
        key=Console.ReadKey(true).Key;

        if(key==ConsoleKey.Escape)
        {
          timer.Stop();        
          break;
        }
        else if(key==ConsoleKey.RightArrow) xpos=xpos+1;
        else if(key==ConsoleKey.LeftArrow) xpos=xpos-1;
        else if(key==ConsoleKey.Enter)
        {
          //
        }
        DrawHexa(100);
      }
    }

    static void DrawHexa(int ____event)
    {
      int ii,kk,ff,rc;

      DateTime now=DateTime.Now;

      if(____event==100)
      Console.WriteLine(">>>>NowEvent[Key ]:"+now.ToString("yyyy-MM-dd HH:mm:ss") + "    INDEX:["+ypos+","+xpos+"]");
      else 
      Console.WriteLine(">>>>NowEvent[Time]:"+now.ToString("yyyy-MM-dd HH:mm:ss") + "    INDEX:["+ypos+","+xpos+"]");
    }
    
    static void Init()
    {
      xpos=0;
      ypos=0;
    }

    static int DownPossible()
    {
      ypos=ypos+1;
      //
      return SUCC;
    }

    static void time_elapsed_func(object sender, ElapsedEventArgs e)
    {
      int ii,kk,ff,rc;

      DrawHexa(200);

      rc=DownPossible();
      if(rc==FAIL)
      {
        if(ypos==0) timer.Stop();
        else
        {
          //INIT
        }
      }
    }
  } //End OF Program Class
} //End Of NameSpace

 

키를 입력하지 않으면, 1초마다 ypos가 1씩 증가하는 구조임.
키를 입력하면, 이벤트가 발생되어서, 그때 로직을 추가해서 사용할수 있음. 위의 예제는 LEFT,RIGHT시에 xpos증감.
헥사게임을 만들게 되면, 일정 시간후에 ypos가 1씩 증가하는 구조를 가지는 시스템에 적당한 프레임예제임.

 

s_frame.cs
0.00MB

 

+ Recent posts