2016-09-03 7 views
2

as/400에서 디스플레이 그래픽을 프로그래밍 할 수있는 DDS 파일의 존재를 알고 있지만 다른 방법이 있습니까?/400 : 다른 방법으로 그래픽을 표시 하시겠습니까?

특히 내가하고 싶은 것은 텍스트가 아닌 다른 것을 표시 할 수 있도록 터미널 버퍼를 직접 조작하는 것입니다. 예를 들어, 터미널은 다음과 같습니다. enter image description here

메모리에서 2 차원 문자 배열이 있습니다. 텍스트 메뉴의 경우 텍스트 [20] [80]보다 작 으면 크기 [200]의 픽셀 버퍼 어레이 [800].

이러한 배열 중 하나에 직접 액세스 할 수있는 방법이 있습니까? 나는 디스플레이 파일을 필요로하지 않고 디스플레이 가능한 메뉴를 C 언어로 만들 수 있고 다른 종류의 그래픽 (이미지)을 픽셀 버퍼에 직접 표시 할 수 있기를 바랍니다.

+0

당신은 명령 행 액세스가 가능한 개발자입니까? 그렇다면 STRPTL 명령을 입력하고 F4로 프롬프트하면 어떻게됩니까? 명령이 설치되어 있습니까? – user2338816

+0

@ user2338816 예 명령 줄 액세스 권한이 있습니다. as400은 V6R1M0 버전입니다. STRPTL 명령이 설치되어 있지 않습니다. –

+0

"그래픽"이 무엇을 의미하는지, 특히 C가 무엇인지는 명확하지 않습니다. 요즘은 자바를 통한 브라우저 UI 일 수 있습니다. C가 ** 필수 ** 인 경우 X 윈도우 디스플레이가 필요하므로 [IBM Tools for Developers (제품 ID 5799PTL)] (https://www-356.ibm.com/partnerworld)를 다운로드/설치하십시오./wps/servlet/ContentHandler/pw_com_porting_tools_index). 그러나 질문을 편집 할 수 있다면 실제로 필요한 것을 더 많이 설명 할 수 있습니다. – user2338816

답변

4

이러한 배열 중 하나에 직접 액세스 할 수있는 방법이 있습니까?

형식이 지정된 필드가없는 "디스플레이 파일"은 여전히 ​​필요하지만 충분히 쉽습니다. '파일'은 프로그램과 실제 장치 (또는 에뮬레이터) 간의 연결입니다. 프로그램에 넣으려는 "텍스트"가 포함 된 단일 큰 영역을 정의 할 수 있습니다. 여기에는 입력 영역을 구분하는 표시 필드 속성도 포함될 수 있습니다.

대부분의 제어를 위해 DDS USRDFN keyword이 적합합니다. 그러나 메뉴 항목 목록과 같은 간단한 항목의 경우 거의 모든 큰 텍스트 필드를 출력 할 수 있습니다.

간단한 텍스트를 출력하는 것은 쉽습니다. USRDFN 형식화와 같은 자세한 내용을 보려면 5250 프로토콜에 대한 자세한 이해가 필요합니다.

대체 방법 중 하나는 User Interface Manager (UIM) APIs을 사용하여 USREXIT = 응용 프로그램을 통해 PANEL의 "텍스트 영역"(: TEXT)을 업데이트하는 것입니다. UIM은 "디스플레이 파일"정의와 실제 I/O가가는 한 모든 것을 처리합니다. UIM은 5250 용 HTML 인터페이스로 생각할 수 있으며 매우 비슷한 마크 업 언어를 사용하여 PANEL을 정의합니다.

또 다른 대체 방법은 Dynamic Screen Manager (DSM) APIs입니다. 이것들은 UIM 또는 DDS 방법보다 훨씬 더 세밀한 제어를 제공합니다 (DDS USRDFN이 매우 가까워 졌음에도 불구하고). 그러나 USRDFN과 마찬가지로 실제 장치 제어에는 5250 프로토콜 지식이 필요합니다.

... 픽셀 버퍼에 다른 종류의 그래픽 (이미지)을 직접 표시 할 수 있습니다.

5250에는 "픽셀 버퍼"도없고 '픽셀'도 없습니다. telnet과 같은 문자 기반 프로토콜입니다. 이미지 또는 '픽셀'을 사용하려는 경우 브라우저 인터페이스 또는 Java 및 NAWT 또는 X-windows 등이 될 수 있습니다.

이제 TCP/IP와 소켓을 사용하면 프로그래밍 할 수있는 모든 것을 할 수 있습니다. 타사 코드 라이브러리 다운로드/설치를 포함하여 수행 방법을 파악할 수있는 모든 작업은 서버를 둘러싼 네트워크 제한 내에서 수행 할 수 있습니다. 그러나 사실 서버이므로 GUI 유형의 앱이 일반적으로 실행되지 않아야합니다. 이는 거의 모든 유형의 서버와 동일합니다. 서버가 아닌 클라이언트 시스템에서 GUI를 코딩하십시오. 그러나 정말로 원한다면 할 수 있습니다. 나는 당신이 왜 이렇게하는 것을 원하는지 확실하지 않다

1

ILE C/C++에서이를 수행하는 방법이 있습니다. 나는 그것을 직접 시도하지 않았기 때문에 조사하는 것은 매우 재미 있었다.

내가 찾을 수있는 documentation on it (페이지 183+)은 5.1에서 찾을 수 있지만 사용 된 기능을 참조 번호 this 7.3 manual (아마도 페이지 vii/7)과 상호 참조하여 동일하게 사용되는지 확인할 수 있습니다.

희망이 도움이되었습니다!

1

...

지금 - 일, 단순히 HTML로 출력을 생성하고 통합을 통해 그것을 제공하는 것이 훨씬 쉬울 것 아파치 웹 서버.

하지만 실제로 5250을 통해 그래픽을 만들고 싶다면 이론적으로는 할 수 있습니다. 플랫폼에서 20 년 이상, 나는 그것을 본 적이 없다.

(1994?) 당시 IBM은 Graphical Data Display Manager (GDDM) and Presentation Graphics APIs에 대한 지원을 OS/400에 추가했습니다. "GDDM은 의 그림을 표시, 인쇄 또는 플로팅하는 수단입니다. 프레젠테이션 그래픽 루틴은 비즈니스 차트를 표시, 인쇄 또는 플로팅하는 수단입니다."

지원은 여전히 ​​운영체제에 있습니다. 그러나 클라이언트 측 지원은 Windows 용 IBM i Access 또는 가장 최근에 릴리스 된 클라이언트 인 IBM Access Client Solutions (ACS)에서 사용 가능한 NOT입니다. 독립형 것으로 보입니다. IBM Personal Communications product may support GDDM.

문자 버퍼를 완전히 제어하려면 Dynamic Screen Manager (DSM) APIs을보십시오. DSM API는 "ILE (Integrated Language Environment®) 고급 언어의 화면을 작성하고 관리하는 동적 인 방법을 제공하는 화면 I/O 인터페이스 세트입니다 .DSM 인터페이스는 바인드 가능하므로 ILE 프로그램에 액세스 할 수 있습니다 만."

+0

GDDM은 인쇄와 디스플레이 모두에 사용되었습니다. 디스플레이를 위해서는 그래도 그래픽이 가능한 5250 터미널이나 에뮬레이터가 필요합니다. 내가 아는 마지막 에뮬레이터는 5250 그래픽이 SNA를 통한 구형 IBM DOS 에뮬레이터였습니다. (어쩌면 3279 색이 효과가 있을까요?) 물론 누군가가 현대적인 것을 쓰는 것을 막을 수는 없습니다. IIRC에서 GDDM은 별도의 옵션이나 제품을 설치할 필요없이 몇 가지 버전의 OS에서 기본으로 제공됩니다. – user2338816

+0

@ user2338816 ... 예, 저는 약간의 데모를 만들었습니다 ... ACS도 GDDM을 지원하지는 않습니다. 그러나 그것은 PCOMM처럼 보입니다. – Charles