라벨이 SPACE 코드인 게시물 표시

SPACE 코드 전용 에디터 AESPA 시연 영상

Scintilla 라이브러리를 활용한 SPACE 코드 전용 에디터 AESPA 개발 [3일차]

1. 주요 기능 개발 1-1. 검색 기능 에디터의 기본 기능 중 하나인 검색 기능이 아래와 같이 구현되었다.       if ( _searchingWord . isEmpty ()) return ; // 기존에 마커가 있으면 모두 지운다. textEdit -> markerDeleteAll (); // lineOfSearchedWords . clear (); indexOfSearchedWords . clear (); searchedWords . clear (); //=================== // 현재 커서 위치를 저장 //=================== int cur_line ; long cur_pos = getCurrentPosition (); int cur_index = 0 ; textEdit -> lineIndexFromPosition ( cur_pos , & cur_line , & cur_index ); QString searchWord = _searchingWord ; //====================== // 파일 시작 부터 검색한다. //====================== textEdit -> setCursorPosition ( 0 , 0 ); mFindFirst = textEdit -> findFirst ( _searchingWord , false , _caseSensitive , _wholeWordMatchOnly , false ); // // int maxNumberOfFinds = 200 ; int count = 0 ; if ( mFindFirst ) { addLineIndexOfSearch...

Scintilla 라이브러리를 활용한 SPACE 코드 전용 에디터 AESPA 개발 [2일차]

이미지
1. 메인 클래스 작성 AESPA의 메인 클래스를 아래와 같이 작성하였다. 클래스 이름은 SIDE이며 본 클래스에서 모든 클래스 및 함수들이 제어될 예정이다. class SIDE : public QMainWindow { Q_OBJECT public : SIDE ( QString fileName = "" , QWidget * parent = nullptr ); ~ SIDE (); protected : void closeEvent ( QCloseEvent * event ); virtual void dragEnterEvent ( QDragEnterEvent * event ); virtual void dropEvent ( QDropEvent * event ); private slots : void newFile (); void open (); bool save (); bool saveAs (); void refresh (); void exportExcel (); void setOptions (); void quit (); void executeCode (); void copy (); void cut (); void paste (); void find (); void findAndReplace (); void toggleFoldAll (); void unitConverter (); void steamTable (); void menuSearch_resultsTriggered ( QAction * act ); void spaceManual (); void manual (); void about (); void setFolderExisted ( bool b ); void op...

Scintilla 라이브러리를 활용한 SPACE 코드 전용 에디터 AESPA 개발 [1일차]

1. 개요 및 목적 Scintilla는 텍스트에디터 전용으로 나온 오픈소스 라이브러리이다. VS code등이 이를 활용한 것으로 보인다. 일반 에디터를 사용하여 전산코드 입력을 편집하는 것이 일반적이나 현업에서 이를 사용하여 임의의 해석을 수행하기 위해서는 아래와 같은 귀찮은 단계들을 거쳐야 한다. [1] 텍스트 에디터에서 전산코드 입력 편집 [2] 저장 및 닫기 [3] 전산코드 실행을 위한 환경 설정 (추후 재계산에 필요한 배치파일 만들기, 입력파일이름 변경 등) [4] 전산코드를 사용하여 해석 수행 [5] 해석결과의 그래프 작성을 위한 엑셀, 오리진 등의 외부프로그램으로의 전환 [6] 외부프로그램에서 해석결과 파일 불러오기 작업 수행 이러한 작업들은 생각보다 개발시간을 많이 사용하게 된다. 이를 자동화하여 개발자의 부담을 덜고 사소한 실수들을 최소화 할 수 있는 코드 전용 에디터가 있다면 매우 효율적일 것이다. 따라서 여기서는 Scintilla 라이브러리를 근간으로 SPACE코드 전용 에디터를 개발하기 위한 프로젝트를 수행한다. 프록젝트 이름은 AESPA (Advanced Editor for SPACE Problem Analysis) 이다. 2. Scintilla 라이브러리 작업 2-1. Scintilla 라이브러리 컴파일 및 Qt와 링크하기 Scintilla라이브러리를 Qt에서 활용하기 위하여  scintilla 홈페이지 에서 소스를 다운받아 이를 MingW로 컴파일을 수행하여 Qt를 위한 라이브러리를 개발하였다. 생성된 라이브러리는 Qt와 링크되었고 이를 Qt 프로젝트 파일에서 다음과 같이 해주면 된다. CONFIG += qscintilla2 2-2. Scintilla 서브 클래싱 향후 개발 시 편의성 및 확장성을 고려하여 Scintilla 클래스를 상속받은 MyScintilla 클래스를 아래와 같이 만들었다. # include < QObject > # include < QUrl > # include ...

SPACE 코드 제어 계통도를 그림 파일로 변환하는 예시

이미지
목차 1. SPACE코드 제어계통 개요 2. SPACE코드 제어계통 그림 예시 1. SPACE코드 제어계통 개요 사용자가 개발한 제어계통을 아래한글이나 워드에서 사용할 수 있도록 그림파일로 저장하는 기능이다. 현재 png, jpg, bmp 형태로 저장할 수 있으며 해상도를 유지할 수 있도록 svg 형태로도 저장할 수 있다. 아래 예시는 png 형태로 저장한 것이다. 2. SPACE코드 제어계통 그림 예시

프로젝트 저장 및 불러오기, 입력 보기, 그래프 기능 개선사항 점검 동영상

  다음 영상은 아래 사항들에 대한 점검 동영상입니다. (1) 프로젝트 파일의 저장하기 및 불러오기 (2) 최근 사용한 프로젝트들에 대한 빠르게 불러오기 (3) LAG 필터의 정상 계산 여부 확인 (4) 엑셀파일로 그래프 데이터 변환 기능 점검 (5) 각 노드에서의 SPACE 입력 보기 버튼의 정상 작동 여부 확인 (6) 노드를 클릭했을 경우 연결된 링크들의 입력 및 출력 보여주기 기능 확인 (7) 그래프의 리셋버튼으로 그래프 지우기 기능 확인 모든 점검 사항들이 정상적으로 작동하고 있습니다. 이제 다음 항목으로 진행해야겠습니다. 2023. 5. 31.

SPACE코드 분석 GUI개발 중간 점검 동영상

  국내에서 개발된 SPACE 코드와 관련된 토이프로젝트를 진행 중입니다. 아래 동영상은 중간 점검을 위하여 녹화한 화면입니다. 이렇게 동영상을 찍어서 보면 제 3자의 입장으로 개발 중 프로그램의 객관적인 평가를 할 수 있습니다.