found one of the hds with some of the COBOL+gpio programs on itYes GnuCOBOL/OpenCOBOL works very well on the raspberry pi. Over the years i've used it to twiddle the gpio on a raspberry pi using the sockets library as well as normal COBOLy type things
very mickey mouse but got the job done
Code:
IDENTIFICATION DIVISION. PROGRAM-ID. pigpiod-client. ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. COPY "PIGPIO_COMMANDS.CPY". 01 IP PIC X(15) VALUE "192.168.0.11". 01 PORT PIC X(4) VALUE "8888". 01 HNDL PIC X(4). 01 PIN PIC 9(2). 01 COMMAND. 02 CMD USAGE IS BINARY-LONG UNSIGNED SYNC. 02 P1 USAGE IS BINARY-LONG UNSIGNED SYNC. 02 P2 USAGE IS BINARY-LONG UNSIGNED SYNC. 02 P3 USAGE IS BINARY-LONG UNSIGNED SYNC. 02 EXT-LEN REDEFINES P3 USAGE IS BINARY-LONG UNSIGNED SYNC. 02 RES REDEFINES P3 USAGE IS BINARY-LONG UNSIGNED SYNC. 01 BUFF PIC X(64000). 01 BYTES_SEND PIC 9(5). 01 BYTES_RECV PIC 9(5). 01 RESULT PIC 9(3). 01 DUMMY pic x. PROCEDURE DIVISION. START-PROC. * Initialise MOVE 25 TO PIN MOVE ZERO to COMMAND MOVE PIGPIO_COMMANDS_PWM to CMD. MOVE PIN to P1. MOVE 255 TO P2. MOVE ZERO TO P3. CALL "CBL_OC_DUMP" USING COMMAND. * Connect to pigpiod socket DISPLAY "CONNECTING TO PIGPIOD". CALL "CBL_OC_SOCKET" USING "02" IP PORT HNDL GIVING RESULT END-CALL. PERFORM HANDLE-ERROR. * write 255 dutycycle to GPIO DISPLAY "SET 255 DUTYCYCLE PWM ON GPIO 25 (BRIGHT)". MOVE 16 TO BYTES_SEND. MOVE 16 TO BYTES_RECV. CALL "CBL_OC_SOCKET" USING "05" HNDL BYTES_SEND BYTES_RECV COMMAND GIVING RESULT END-CALL. PERFORM HANDLE-ERROR. * sleep for 3 seconds DISPLAY "ZZZZZZZZ FOR 3 SECONDS". CALL "C$SLEEP" USING "3" END-CALL. * write 0 dutycycle to GPIO DISPLAY "SET 0 DUTYCYCLE PWM ON GPIO 25 (OFF)". MOVE ZERO TO P2. CALL "CBL_OC_DUMP" USING COMMAND. MOVE 16 TO BYTES_SEND. MOVE 16 TO BYTES_RECV. CALL "CBL_OC_SOCKET" USING "05" HNDL BYTES_SEND BYTES_RECV COMMAND GIVING RESULT END-CALL. PERFORM HANDLE-ERROR. STOP RUN. HANDLE-ERROR SECTION. DISPLAY "SOCKET RESULT IS :" RESULT. DISPLAY "PIGPIOD RESULT IS:" P3. IF RESULT NOT = 0 THEN CALL "CBL_OC_SOCKET" USING "99" GIVING RESULT DISPLAY "OS-ERROR: " RESULT ACCEPT DUMMY STOP RUN END-IF.
Statistics: Posted by ukscone — Sun Mar 17, 2024 5:35 pm