SIMPLEX COMMUNICATION USING RS-232 IN C (FILE PASSING)
SIMPLEX FILE
TRANSMITER
#include<stdio.h>
#include<io.h>
#include<dos.h>
#include<conio.h>
#include<bios.h>
#define COM1 0
#define COM1ADDR 0x3F8
#define DATA_READY
0x100
#define TRANS_READY
0x2000
             /*#define SETTING
0xE0|0x08|0x03|0x00;  baud9600 none
parity  8data 1stop bit */
  
main()
   {
char
tfile;
int
status,counter=0;/*,v=1;*/
char
ch;
long
size;
char
setting,baud = 0xe0,parity = 0x08,data = 0x04,stop = 0x03;
FILE
*fpt;
setting
= baud | parity | data | stop;
clrscr();
bioscom(0,setting,COM1);
                     printf("\n\tEnter Filename To
Transfer : ");
                   scanf("%s",tfile);
                   fpt
= fopen("c:\\1.txt" ,"r");
                   if(fpt
== NULL)
                     {
                             printf("\n\tFile
Not Found.....\n");
                     }
                    else
                     {
                              fseek(fpt,0,SEEK_END);
                      }
                     size =
ftell(fpt);
                      printf("\n\tFile size is
%ld",size);
                      rewind(fpt);
                       printf("\n\tFile is being
transferred\n\tWait...\n");
                      while(!feof(fpt))
                      {
            
                status=bioscom(3,0,COM1);
            
                if(status &
TRANS_READY)
             
               {
               
                       ch=fgetc(fpt);
             
                          if(ch==EOF)
               
                       {
            
                                   outport
               
                                break;
              
                         }
               
                       outport(COM1ADDR,ch);
               
                       counter++;
               
                       gotoxy(20,20);
               
                       printf("%d
Bytes has been transfered",counter);
              
              }
                     }       
                     outport(COM1ADDR,0x1b);
                     printf("\n\tFile transferred
successfully");
                     getch();
               }
}
                                      SIMPLEX FILE
RECEIVER
#include<stdio.h>
#include<dos.h>
#include<conio.h>
#include<bios.h>
#define
COM1 0
#define
COM1ADDR 0x3f8
#define
DATA_READY 0x100
#define
TRANS_READY 0x2000
main()
{
            char rfile,ch;
int status;
char
setting,baud = 0xa0,parity = 0x08,data = 0x04,stop = 0x03;
FILE *fpr;
setting = baud |
parity | data | stop;
clrscr();
             printf("\n\tEnter file to receive:
");
             scanf("%s",rfile);
             fpr = fopen(rfile,"w");
             if(fpr == NULL)
            {
                      printf("\n\tError...File
cannot be opened");
              }            
else
            {        
                      bioscom(0,setting,COM1);
            }
            while(1)
            {
                      status=bioscom(3,0,COM1);
                      if(status & DATA_READY)
                      {
                               ch
= inport(COM1ADDR);
                               fputc(ch,fpr);
                               if(ch==
0x1b)
                               break;
                               printf("%c",ch);
                      }
            }
}
 
No comments:
Post a Comment