2018년 6월 25일 월요일

[한이터백승기] AI준비단계 - 컴파일 단계 준비(5)

오늘은 출력을 구현하지만notepad.exc 안에 출력하게 만들것입니다.
당장은 노트패드 지만 MSWORD 나 한글 도 가능합니다.
물론 대상 SW는 아무것도 수정하지 않습니다.
수정할수도 없습니다 만 ^^

[소스 원본]gRTN.demo(""
"struct one1 begin;"
"int A=111,B=222,C=333;"    // 정수:초기화 -> to int array
"chr D:40,E:32;" // 문자열:길이 -> to 크기를 지정함 <- 추가
"int A=111,B=222,C=333;"    // 정수:초기화 -> to int array
"str D1='abcd',E1='';"      // 문자열:길이 -> to 가변 미구현
"num F,G;" // FLOAT NUMBER  -> to double
"end;"
"program main begin;"
"one1.A = 100;"
"one1.B = 2;"
"one1.C = one1.A + one1.B;"
"exec notepad.exe;"
"putln one1.F,one1.B,one1.G;" // like prinf
"put one1.A,one1.B,one1.C;" // like prinf
//"putln ';';"
//"putln 'RESULT=[one1.A,one1.B,one1.A]';"
"end;"
);

[실행결과화면]

[실행결과]변수를 값으로 변환하기 전에 출력대상을 프로그램 상이 아닌 외부 프로그램인
[ notepad.exe ]를 이용했습니다.
--------------------------------------------
Test Command List
--------------------------------------------
. help   - (h) show this message
. run    - (r) run script
. edit   - (e) call editor
. quit   - (q) quit program!
--------------------------------------------
r
Run scriper!
[source list begin]
[0000] struct one1 begin
[0001] int A=111,B=222,C=333
[0002] chr D:40,E:32
[0003] int A=111,B=222,C=333
[0004] str D1='abcd',E1=''
[0005] num F,G
[0006] end
[0007] program main begin
[0008] one1.A = 100
[0009] one1.B = 2
[0010] one1.C = one1.A + one1.B
[0011] exec notepad.exe
[0012] putln one1.F,one1.B,one1.G
[0013] put one1.A,one1.B,one1.C
[0014] end
[source list end]


 [struct] [one1] [begin]
 [int] [A=111] [B=222] [C=333]
 [chr] [D:40] [E:32]
 [int] [A=111] [B=222] [C=333]
 [str] [D1=] [abcd] [E1=]
 [num] [F] [G]
 [end]
 [program] [main] [begin]
 [one1.A] [=] [100]
 [one1.B] [=] [2]
 [one1.C] [=] [one1.A] [+] [one1.B]
 [exec] [notepad.exe]
 [putln] [one1.F,one1.B,one1.G]
 [put] [one1.A,one1.B,one1.C]
 [end]

VAR_TY_NONE: <struct>
<BEGIN STRUCT>
 [sStructName:one1][tag:begin]
-var-: <int>[L=10,'111' ][A=111][L=10,'222' ][B=222][L=10,'333' ][C=333]
-var-: <chr>[L=40,'40' ][D:40][L=32,'32' ][E:32]
-var-: <int>[L=10,'111' ][A=111][L=10,'222' ][B=222][L=10,'333' ][C=333]
-var-: <str>[L=128][D1=][L=128][abcd][L=128][E1=]
-var-: <num>[L=20][F][L=20][G]
<END STRUCT>

memory address![end][1]
VAR_TY_NONE: <program>
<BEGIN PROGRAM>
 [sStructName:main][tag:begin]
-prg-: <one1.A>
memory address![one1.A][3]<=><100>
-prg-: <one1.B>
memory address![one1.B][3]<=><2>
-prg-: <one1.C>
memory address![one1.C][5]<=><one1.A><+><one1.B>
-prg-: <exec>
memory address![exec][2]<notepad.exe>
-prg-: <putln>
memory address![putln][2]<one1.F,one1.B,one1.G>
-prg-: <put>
memory address![put][2]<one1.A,one1.B,one1.C>
<END PROGRAM>

memory address![end][1]
[:00]  VAR:one1
program_cnt=8
[program] top address:00  name:end [sub cnt:0]
[program] top address:01  name:one1.A [sub cnt:2]
[x][y] memory address:[01][00]  name:= [type:999]
[x][y] memory address:[01][01]  name:100 [type:999]
[program] top address:02  name:one1.B [sub cnt:2]
[x][y] memory address:[02][00]  name:= [type:999]
[x][y] memory address:[02][01]  name:2 [type:999]
[program] top address:03  name:one1.C [sub cnt:4]
[x][y] memory address:[03][00]  name:= [type:999]
[x][y] memory address:[03][01]  name:one1.A [type:999]
[x][y] memory address:[03][02]  name:+ [type:999]
[x][y] memory address:[03][03]  name:one1.B [type:999]
[program] top address:04  name:exec [sub cnt:1]
[x][y] memory address:[04][00]  name:notepad.exe [type:101]
[program] top address:05  name:putln [sub cnt:1]
[x][y] memory address:[05][00]  name:one1.F,one1.B,one1.G [type:103]
[program] top address:06  name:put [sub cnt:1]
[x][y] memory address:[06][00]  name:one1.A,one1.B,one1.C [type:102]
[program] top address:07  name:end [sub cnt:0]


[RUN]program_cnt=8
Run ...TY_ETC
TY_ETC
[EQQ] SET:[01]  name:100 [type:999]
[EQQ] [RESULT] data:100
TY_ETC
[EQQ] SET:[01]  name:2 [type:999]
[EQQ] [RESULT] data:2
TY_ETC
[EQQ] SET:[01]  name:one1.A [type:999]
[EQQ] SET:[02]  name:+ [type:999]
[EQQ] SET:[03]  name:one1.B [type:999]
[EQQ] [RESULT] data:one1.A+one1.B
TY_EXE
[RUN] WORD:[00]  name:notepad.exe [type:101]
TY_PUTLN
[RUN] PUTLN:[00]  name:one1.F,one1.B,one1.G [type:103]
TY_PUT
[RUN] PUT:[00]  name:one1.A,one1.B,one1.C [type:102]
TY_ETC 

2018년 6월 20일 수요일

[한이터백승기] AI준비단계 - 컴파일 단계 준비(4)


이번에는 프로그램 을 실행시킬 겁니다.
이것은 다른방법으로도 쉬운것이고 누구나 간단히 구현하는 것이지요
물론 스크립트 소스를 만들고
실행시킬 스크립트 프로그램 원본 을 컴파일하고 이것을 실행시키는 프로그램은 전혀 다른 예기입니다.

* 보이는 소스를 실행하고 결과를 생성합니다.

1. 원본소스를 준비합니다. ( 파일 또는 다음과 같은 프로그램 내에서 사용합니다.)
2. 실행합니다. ( 모든 소스를 분해하고 확인해서 변수 와 실행부분으로 분리합니다.)
3. 결과 : 여기서는 exec notepad.exe 만 실행합니다.
옆부분의 notepad.exe가 실행되어 있고 이것이 결과 입니다.


다음에는 출력부분을 추가할 예정입니다.



2018년 6월 18일 월요일

[한이터백승기] AI준비단계 - 컴파일 단계 준비(3)

이번진행은 프로그램 코드까지 파싱하는 것 까지 진행하고 있습니다.
컴파일단계에서 남은 과제는  계산식과 커멘드가 참조하는 각변수들을프로그램 Address로 전환하는 것입니다.
프로그램을 위해 메모리에 할당한 실제 변수를 가상화 시켜서스크립트가 참조할수 있는 Address로 번역하는 것입니다.
원본소스와 프로그램 컴파일을 위한 파싱과정은 다음과 같습니다.
* 현제 이프로그램은 에러처리 및 예외 처리는 하지 않습니다.


<원본소스>gRTN.demo(""
"struct one1 begin;"
"int A,B,C;" // 정수:초기화 -> to int array
"str D,E;"   // 문자열:길이 -> to 가변 Array
"num F,G;"   // FLOAT NUMBER  -> to double
"end;"
"program main begin;"
"one1.A = 100;"
"one1.B = 2;"
"one1.C = one1.A + one1.B;"
"exec notepad.exe;"
"put '$1+$2=$3',one1.A,one1.B,one1.C;" // like prinf
"end;"
);

<처리과정>--------------------------------------------
Test Command List
--------------------------------------------
. help   - (h) show this message
. run    - (r) run script
. edit   - (e) call editor
. quit   - (q) quit program!
--------------------------------------------
r   // 메뉴의 run을 실행한다. < 지금은 컴파일 과정만 진행중입니다. >

Run scriper! 
// 소스 목록 display 입니다.
[source list begin]
[0000] struct one1 begin
[0001] int A,B,C
[0002] str D,E
[0003] num F,G
[0004] end
[0005] program main begin
[0006] one1.A = 100
[0007] one1.B = 2
[0008] one1.C = one1.A + one1.B
[0009] exec notepad.exe
[0010] put '$1+$2=$3',one1.A,one1.B,one1.C
[0011] end
[source list end]


//  1 단계 변수 및 구조체 파싱 - 현제는 구조체만 합니다.
VAR_TY_NONE: <struct>
<BEGIN STRUCT>
 [sStructName:one1][tag:begin]
-var-: <int>[A][B][C]
-var-: <str>[D][E]-var-: <num>[F][G]<END STRUCT>// 2단계 프로그램 파싱
CREATE program![end]

VAR_TY_NONE: <program>
<BEGIN PROGRAM>
 [sStructName:main][tag:begin]
-prg-: <one1.A>
CREATE program![one1.A]
[=][100]
-prg-: <one1.B>
CREATE program![one1.B]
[=][2]
-prg-: <one1.C>
CREATE program![one1.C]
[=][one1.A][+][one1.B]
-prg-: <exec>
CREATE program![exec]
[notepad.exe]
-prg-: <put>
CREATE program![put]
[$1+$2=$3][one1.A][one1.B][one1.C]
<END PROGRAM>

CREATE program![end]
// 3단계 디버깅을 위해 파싱한 구조체와 프로그램 소스 목록을 출력합니다.
[struct] top address:00  name:one1 [sub cnt:7]
[vars] memory address:[00][00]  name:A [type:10]
[vars] memory address:[00][01]  name:B [type:10]
[vars] memory address:[00][02]  name:C [type:10]
[vars] memory address:[00][03]  name:D [type:20]
[vars] memory address:[00][04]  name:E [type:20]
[vars] memory address:[00][05]  name:F [type:11]
[vars] memory address:[00][06]  name:G [type:11]
program_cnt=7
[program] top address:00  name:end [sub cnt:0]
[program] top address:01  name:one1.A [sub cnt:2]
[x][y] memory address:[01][00]  name:= [type:-25]
[x][y] memory address:[01][01]  name:100 [type:-25]
[program] top address:02  name:one1.B [sub cnt:2]
[x][y] memory address:[02][00]  name:= [type:-25]
[x][y] memory address:[02][01]  name:2 [type:-25]
[program] top address:03  name:one1.C [sub cnt:4]
[x][y] memory address:[03][00]  name:= [type:-25]
[x][y] memory address:[03][01]  name:one1.A [type:-25]
[x][y] memory address:[03][02]  name:+ [type:-25]
[x][y] memory address:[03][03]  name:one1.B [type:-25]
[program] top address:04  name:exec [sub cnt:1]
[x][y] memory address:[04][00]  name:notepad.exe [type:101]
[program] top address:05  name:put [sub cnt:4]
[x][y] memory address:[05][00]  name:$1+$2=$3 [type:102]
[x][y] memory address:[05][01]  name:one1.A [type:102]
[x][y] memory address:[05][02]  name:one1.B [type:102]
[x][y] memory address:[05][03]  name:one1.C [type:102]
[program] top address:06  name:end [sub cnt:0]
// 여기까지 입니다.  다음과정은 실행을 대비해 침조 변수를 실제 주소화 하는 것입니다. // ( 이단계는 조금 복잡합니다.)

2018년 6월 14일 목요일

[한이터백승기] AI준비단계 - 컴파일 단계 준비(2)

*) 컴파일형식의 스크립트 언어: 추가 데모 소스코드 분석 및 구조체 분석
주소 매기기 (이미지는 소스와 프로그램 컴파일 과정의 이미지 입니다.)
*) 개발중인 이 프로그램은  AI 로 연계하기 위한 것입니다.

















원본소스를 구조체와 프로그램부로 나누고 분석합니다.
지금은 구조체를 분석하고 메모리에 저장한후 순서대로 주소를 
붙힌상태입니다.
다음은 구조체에 붙힌 주소를 프로그램에 적용할 단계입니다.

2018년 6월 13일 수요일

[한이터백승기] AI준비단계 - 컴파일 단계 준비

다음과 같이 코드룰 binary로 변환 할것이고 다음은 간단한 정의문입니다,.




다음과 같은 실제코드를 변환할 준비중입니다.변환이 끝나면 실행코드를 작성할 것입니다.
gRTN.demo("" 
"struct one1 begin;" 
"int A,B,C;" // 정수:초기화 -> to int array 
"str D,E;"   // 문자열:길이 -> to 가변 Array 
"num F,G;"   // FLOAT NUMBER  -> to double 
"end;" 
"program main begin;" 
"one1.A = 100;" 
"one1.B = 2;" 
"one1.C = one1.A + one1.B;" 
"exec notepad.exe" 
"put '$1+$2=$3\n',one1.A,one1.B,one1.C;" // like printf 
"end;" 
);

2013년 3월 1일 금요일

나의 이야기 2012.08 LGU+ KICS 통신사 Agent



 제목: LGU+ KICS 통신사 Agent
 기간: 2012.08-2012.12
 TOOL: VC++8.0, FLEX 빌더 4.6( KICS 시뮬레이션서버)
 OS  : Windows 2008 Server
 기술: C/C++, XML, FTP, XLS, ZIP, TCP/IP, Flex AIR, Oracle Ole DB,MagicAPI
 성격: Server/Client Agent 수집 및 연동 서버 : EXE
      1. Xml, Zip 파일 수신 및 저장
      2. Xml 파싱 및 데이터 수집
      3. CSV 파싱 및 데이터 수집
      4. Zip 파일 앞축 및 해제
      5. LGU Data DB 연결및 조회 및 등록
      6. MagicAPI 암/복호화
      7. Flex AIR 를 이용하여 KICS test Server 구현 및 테스트
      8. 통신자료 수정보완
      9. 통신사실 신규 개발완료 적용
     10. 이미지 인쇄 및 이미지 문서 발행

 역활: 분석, 설계, 개발

하나의 프로그램에서 가장 다양한 스킬이 적용된 서버 프로그램 개발 경험을
가지게 한 프로젝트 인듯 합니다.

그중의 하나는
xml 및 Zip 파일을 송수신하고 앞축을 풀고, 다시 앞축하고
Xml 데이터를 추출하고 다시 Xml 문서를 생성하기도 합니다
Xml 이용하는 곳이 많은 만큼 매우 유용한 기능의 구현입니다.

또한 미리준비한 jpg또는 tiff 이미지 문서에 데이터를 직접작성해서
인쇄 발행하고 전송해주는 기능은 FAX서버를 대신 할수 있게 합니다.
또한 워드프로세서의 기능도 대체할수 있게 해줍니다.

멀티 DB 조회및 데이터 전송 및 사고시 복구기능 과
지정한 파일서버에 Ftp를 이용해서 자동으로 파일을 수신하고
수신한파일을 앞축해서 서버로 전송하는것등은 복잡한 프로세서이지만
꼭필요로 하는 곳이 많은 기능입니다.

내용상 비밀을 요하는 업무기능이 많은 만큼 개발기능을 언급하는 정도로
마무리합니다.




나의 이야기 2011.09 IntelliVMS 프로젝트


제목: IntelliVMS
기간: 2011.09-2012.07
TOOL: FLEX 빌더 4.6
OS : Windows
기술: Flex, WSDL, SOAP, HTTP Service, XML
성격: 컴포넌트: SWF
1. 복합 VCAM 및 VCAM 그룹관리 Map Editor 개발
2. 복합 VCAM 및 VCAM 그룹관리 Map Viewer 개발
3. 라이센스 관리, VCAM 관리, Distributor 관리, Analyzer/Recorder관리
사용자관리, 역활관리, 로그조회, 기타설정관리
4. Event 정보 수신 및 관리
5. 로그인 및 로그인 사용자 정보 관리
6. HTTP Service/ SOAP 개발
역활: 분석, 설계, Web Clint 컴포넌트 개발

(화면은 데모화면입니다.)

FLEX 로 구현한 영상관리 프로그램입니다.
왭상에서 웹회면의 전부를 차지 할수도 있으며, 일부 화면으로도 사용할수 있습니다.

화면상 다양한 메뉴를 아이콘과 단선도를 이용하여 표시할수 있는 기능을
가지고 Windows 응용프로그램이 가지는 모든 기능을 구현할수 있는 Flex는
대단히 유용한 스킬입니다.

구현기능중 SOAP 2.0 은 원래 FLEX가 지원하지 않은 기능이지만
수정가능한 구성Lib를 수정하므로 SOAP2.0을 이용한 데이터 통신을 구현했습니다.

원래 HTTP Service를 이용해 구성한 플렉스 기능을 데체하였고
이것은 보안이 필요한 서버와의 통신을 안전하게 만들어주는 것이기도 합니다.

플랙스로 업무용 프로그램을 구현하였으며
원래의 화려한 그래픽 기능도 그대로 이용한 프로젝트 였습니다.



2013년 1월 1일 화요일

나의이야기 2011.08 61850 HMI Editor

2011.08 61850 HMI Editor

제목: 61850 HMI Editor
기간: 2011.07-2011.08
TOOL: FLEX 빌더 3.0/ VC++6.0/VC++8.0
OS : Windows
기술: Flex 액션 스크립트, C++ , C#
성격: 컴포넌트: SWF, ActiveX, C# Main App, Editor
1. BUS, BUS TIE, BUS STATION 및 장비 ,CB,DS,ES 등
2. 통합 기능 개발 Graphic ToolKit , HMI 프로젝트 관리
3. Drag and Drop 방식의 모든 작업
4. ICON 등록작업, 선연결 작업 및 속성 정보 수정이 간단하고 동기화 됨
5. 미니맵을 이용한 자유로은 이동 및 편집 기능
6. 자동화된 장비 연결 및 버스 단위 그룹이동
7. 자동화된 사활선 등록/수정/삭제 - 스스로 알아서 버스와 함께 연결되어
버스선처럼 보임
역활: 분석, 설계, 61850 HMI Editor 엔진 개발
이것은 단순히 엔진이 아니라 모든것을 수정가능하게 하는 에디터 입니다.
즉 엔진 + 에디터(Editor) 입니다.
FLEX 를 Base로 만들었으므로 ActiveX 를 데체할 수 있습니다. 자체 통신가능도 가지고 있으므로
ActiveX 가 막히고 있는 가운데 가장안전한 Web Tool 이 될것입니다.
Hmi 에 대한 1차 마무리 입니다.
사정상 개발을 시작한지 1.0 (4주) 개월 정도 진행한 것이지만
엔진 개발이 주 목적이 이 었으므로 마무리 지었습니다.
나머지는 UI 와 61850 API 와의 데이터 연동 입니다.
엔진도 나름이지만 61850 데이터 연동도 막대한 작업이
필요로 할것입니다.




위 그림은 버스와 버스 타이 버스 스테이지션이 모두 연결되었습니다.
각 단의 붙어 있는 DS,ES,CB 등 모두 버스와 함꼐 움직입니다.

위 그림은 속성정보를 편집해서 간단하게 버스의 색상을 변경 해줍니다.
좀더 발전한다면 각 간의 전류 전압정보 까지 DISPLAY 윈도우로 보여 줄수 있습니다.
현제 개발은 여기까지 입니다만
숨어 있는 한가지는 사활선 입니다. 색상이 바뀌는 모든 항목들은 사실은 모두 윈도우 입니다.
장비 연결에 따라 모두 자동 생성 삭제 됩니다.
전류의 흐름 방향 표시 및 고장으로 전류 공급이 중단된다면 이 선들이 표시해 줄겁니다.
물론 표시 알고리즘이 적용 되어야 겠습니다.
(*) 화면에 흰색 사각형은 영역지정 입니다. - 후에 원하는 영역만 확대해서 표시되거나 해당 위치로
자동 위치 이동을 가능하게 해줍니다.
(*) 장비의 크기가 제 각각인것은 모든 장비의 사이즈를 마음대로 수정할수 있게 한것 때문입니다.
사이즈 고정을 원하는 경우 고정하는 기능을 추가하면 되겠죠

나의이야기 2011.06 개발툴 SCL 61850 Editor Project

2011.06 개발툴 SCL 61850 Editor Project
가 이제 완료 되었습니다~
이 프로젝트의 개발자 백승기 입니다.
개발사: Nexchal
the source code created by My fingers on the keyboard. and compiling by compiler.
and execution of Software is Shows a very large interest
For example, After developing a small program, you will see the advantages and disadvantages.
It complements the weakness of the program. In addition, the program will have more features.
Such expectations is to create new software. I was making a software. The software is used to other people.
All that proud.
Software development is harder. And many debug work are also required
Such experiences help us to create software more quickly. More bug-free program, to develop more creative.
From 1992 to 2011 now, all my software has been developed
In our country, it was long-term. Personally,i know I'm standing on the other start point.
Many programmers are a lot of work in Korea. Sometimes one of the programmers are responsible for one project. It is often.
Many projects have performed,thanks. It is possible only in Korea.
61850 SCL Editor recently developed is a typical project. If necessary, Software will be sent to be tested.
기간: 2010.11-2011.06 (예상보다 빨리 완성하였습니다. )
TOOL: FLEX 빌더 3.0/ VC++6.0/VC++8.0
OS : Windows
기술: Flex 액션 스크립트, C++ , C#
성격: 컴포넌트: SWF, ActiveX, C# Main App, Editor
1. Substation/Voltage/Bay 각 Level 별 구성정보관리 그래픽 개발 TOOL
2. 통합 기능 개발 Graphic ToolKit , SCD 프로젝트를 관리
3. SSD, CID Export 기능
4. 61850 표준 기능지원 SCD 와 화면정보를 포함하는 Slf (자체파일) 관리
5. Drag and Drop 방식의 모든 작업
6. ICON 등록작업, 선연결 작업 및 속성 정보 수정이 간단하고 동기화 됨
7. 미니맵을 이용한 자유로은 이동 및 편집 기능
역활: 분석, 설계, 61850 SCL Editor 개발

지난 5월 20일 완료보고 함으로 마무리 지었습니다.
물론 보고한 사람은 다른 사람입니다 만
성공리에 완료된것이 기쁩니다.
다른 경우에는 데모버젼을 올렸지만 이프로젝트의 경우엔 데모버젼을 올릴수 없네요~
데모버젼이라도 칼키사의 SCL Editor 의 판매버젼과 거의 같은 기능을 가지고 있기 때문이지요~
이 그림은 XML Viewer 쪽입니다. (Edit 기능을 가지지만 현재 버젼에서는 Viewer만 제공합니다.)
XML 코드는 자동으로 추가 되거나 삭제 됩니다.
즉 사용자가 XML 코딩을 하지 않습니다.
XML 코드를 변경하기 위해서는 화면상에 UI 를 수정하거나 속성을 고치면 되도록 돠어 있습니다~

이 Software 는 Kalki 사의 SCL Manager 와 같거나 더 나은 기능을 가지고 있습니다.
물론 일부분에서 그런것입니다.
20년 전통의 회사를 단지 한사람이 6~8개월동안 개발한것으로 이긴다면 안돼겠지요~
여기까지의 결과물에 대하여 매우 기쁘게 생각하며
하나님꼐 감사드립니다...

나의이야기 2011.06 개발툴 SCL 61850 Editor Project

2011.06 개발툴 SCL 61850 Editor Project
가 이제 완료 되었습니다~
이 프로젝트의 개발자 백승기 입니다.
개발사: Nexchal
the source code created by My fingers on the keyboard. and compiling by compiler.
and execution of Software is Shows a very large interest
For example, After developing a small program, you will see the advantages and disadvantages.
It complements the weakness of the program. In addition, the program will have more features.
Such expectations is to create new software. I was making a software. The software is used to other people.
All that proud.
Software development is harder. And many debug work are also required
Such experiences help us to create software more quickly. More bug-free program, to develop more creative.
From 1992 to 2011 now, all my software has been developed
In our country, it was long-term. Personally,i know I'm standing on the other start point.
Many programmers are a lot of work in Korea. Sometimes one of the programmers are responsible for one project. It is often.
Many projects have performed,thanks. It is possible only in Korea.
61850 SCL Editor recently developed is a typical project. If necessary, Software will be sent to be tested.
기간: 2010.11-2011.06 (예상보다 빨리 완성하였습니다. )
TOOL: FLEX 빌더 3.0/ VC++6.0/VC++8.0
OS : Windows
기술: Flex 액션 스크립트, C++ , C#
성격: 컴포넌트: SWF, ActiveX, C# Main App, Editor
1. Substation/Voltage/Bay 각 Level 별 구성정보관리 그래픽 개발 TOOL
2. 통합 기능 개발 Graphic ToolKit , SCD 프로젝트를 관리
3. SSD, CID Export 기능
4. 61850 표준 기능지원 SCD 와 화면정보를 포함하는 Slf (자체파일) 관리
5. Drag and Drop 방식의 모든 작업
6. ICON 등록작업, 선연결 작업 및 속성 정보 수정이 간단하고 동기화 됨
7. 미니맵을 이용한 자유로은 이동 및 편집 기능
역활: 분석, 설계, 61850 SCL Editor 개발

지난 5월 20일 완료보고 함으로 마무리 지었습니다.
물론 보고한 사람은 다른 사람입니다 만
성공리에 완료된것이 기쁩니다.
다른 경우에는 데모버젼을 올렸지만 이프로젝트의 경우엔 데모버젼을 올릴수 없네요~
데모버젼이라도 칼키사의 SCL Editor 의 판매버젼과 거의 같은 기능을 가지고 있기 때문이지요~
이 그림은 XML Viewer 쪽입니다. (Edit 기능을 가지지만 현재 버젼에서는 Viewer만 제공합니다.)
XML 코드는 자동으로 추가 되거나 삭제 됩니다.
즉 사용자가 XML 코딩을 하지 않습니다.
XML 코드를 변경하기 위해서는 화면상에 UI 를 수정하거나 속성을 고치면 되도록 돠어 있습니다~

이 Software 는 Kalki 사의 SCL Manager 와 같거나 더 나은 기능을 가지고 있습니다.
물론 일부분에서 그런것입니다.
20년 전통의 회사를 단지 한사람이 6~8개월동안 개발한것으로 이긴다면 안돼겠지요~
여기까지의 결과물에 대하여 매우 기쁘게 생각하며
하나님꼐 감사드립니다...