serialcontrol.php

#include <curses.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
#include <string.h>
#include <sys/ioctl.h>

/* global variables */
char device[255] = "/dev/ttyS0";                          /* name of device to open */

int main()
{
  
int fd,dtr,count=0;
  
unsigned int arg;

   
/* open port */
  
fd open(deviceO_RDWR);
  if (
fd == -1) {
    
char s[255];
    
sprintf(s"statserial: can't open device `%s'"device);
    
perror(s);
    exit(
1);
  }

  
    
/* loop forever */
  
for (;;) {


    
printf("Device: %s\n\n"device);
    
printf("Signal  Pin  Pin  Direction  Status  Full\n");
    
printf("Name    (25) (9)  (computer)         Name\n");
    
printf("-----   ---  ---  ---------  ------  -----\n");
    
printf("FG       1    -      -           -   Frame Ground\n");
    
printf("TxD      2    3      out         %1d   Transmit Data\n", !!(arg TIOCM_ST));
    
printf("RxD      3    2      in          %1d   Receive  Data\n", !!(arg TIOCM_SR));
    
printf("RTS      4    7      out         %1d   Request To Send\n", !!(arg TIOCM_RTS));
    
printf("CTS      5    8      in          %1d   Clear To Send\n", !!(arg TIOCM_CTS));
    
printf("DSR      6    6      in          %1d   Data Set Ready\n", !!(arg TIOCM_DSR));
    
printf("GND      7    5      -           -   Signal Ground\n");
    
printf("DCD      8    1      in          %1d   Data Carrier Detect\n", !!(arg TIOCM_CAR));
    
printf("DTR     20    4      out         %1d   Data Terminal Ready\n", !!(arg TIOCM_DTR));
    
printf("RI      22    9      in          %1d   Ring Indicator\n", !!(arg TIOCM_RNG));
    
printf("\ncounter: %1d\n",count);
    
count++;
    if (
count == 3) {
        
printf("\nwh00000000000t\n\n hehehe\n");
        
dtr=TIOCM_DTR;
        
// Clear DTR (4)
        
ioctl(fdTIOCMBIC,&dtr);
    }

 if (
count == 6) {
        
printf("\nwh00000000000t\n\n hehehe\n");
        
dtr=TIOCM_DTR;
        
// Set DTR
        
ioctl(fdTIOCMBIS,&dtr);
    }

 if (
count == 9) {
        
printf("\nwh00000000000t\n\n hehehe\n");
        
dtr=TIOCM_RTS;
        
// Clear RTS
        
ioctl(fdTIOCMBIC,&dtr);
    }

 if (
count == 12) {
        
printf("\nwh00000000000t\n\n hehehe\n");
        
dtr=TIOCM_ST;
        
// Set ST ()
        
ioctl(fdTIOCMBIS,&dtr);
    }


 if (
count == 15) {
        
printf("\nwh00000000000t\n\n hehehe\n");
        
dtr=TIOCM_RTS;
        
// Set RI ()
        
ioctl(fdTIOCMBIS,&dtr);
    }


   
// refresh();
    /* home cursor */
//:    move(0,0);
     /* delay 1 second between loops */
    
sleep(1);
    }

  return 
0;
}  
?>