Thread: about bioscom(1,in,COM1)

  1. #1
    Registered User
    Join Date
    Apr 2008
    Posts
    2

    about bioscom(1,in,COM1)

    Hi all,
    I m doing one c program for serial communication.In that i want to send request to one hardware module, after receiving my request that h/w send me one frame with predefined format.
    Code:
    /*
    Program SERIALCOMMUNICATION.C is used for PC to PC or PC to Hardware
    Communication.
    
    */
    #include<bios.h>
    #include<stdio.h>
    #include<string.h>
    #include<conio.h>
    #include<time.h>
    
    #define COM3 2
    #define DATA_READY 0x100
    #define SETTINGS ( 0xE0 | 0x03 | 0x00 | 0x00)
    //baud 9600 | 8 data bits | no parity | 1 stop bit
    void main()
    {
    int status;
    unsigned char out,in;
    char another,option;
    FILE *rfile,*wfile;
    int DONE=0,i=0,p=0,k=0;
    int Count=0;
    unsigned char rcvdata[80];
    char sendrequest[21]="Start,SendRequest,End";
    time_t timer;
    struct tm *tblock;
    timer = time(NULL);
    printf("\n");
    clrscr();
    bioscom(0, SETTINGS, COM3);
    printf("\n\n************************************** *******************\n\n");
    printf("\t1. Send Request For Current Time Frame\n");
    printf("\t2. Escape");
    printf("\n\n************************************** ********************\n\n");
    printf("Your Choice If you want,Otherwise wait for next Frame? :\n");
    
    
    rfile=fopen("RECEIVE.TXT","a");
    wfile=fopen("SEND.TXT","a");
    while (!DONE)
    {
    status = bioscom(3, 0, COM3);
    
    if(status & DATA_READY)
    {
    if((out =(unsigned char)bioscom(2, 0, COM3)) != 0)// input message byte.
    {
    if((int)out==8 && Count>0)
    {
    Count=Count-1;
    }
    else
    {
    rcvdata[Count]=out; //Store char in buffer
    Count++;
    }
    }
    if(out==13)
    {
    fprintf(rfile,"\n");
    for(i=0;i<Count-1;i++)
    fprintf(rfile,"%c",rcvdata[i]);
    for(p=0;p<Count-1;p++)
    printf("%c",rcvdata[p]);
    printf("\n");
    Count=0;
    }
    }
    if (kbhit()) //character entered
    {
    option=getche();
    
    switch(option)
    {
    case '1' :
    printf("\nSend Request:");
    /* converts date/time to a structure */
    tblock = localtime(&timer);
    fprintf(wfile,"\nRequest sent at:%s:", asctime(tblock));
    for(k=0;k<21;k++)
    {
    bioscom(1,sendrequest[k],COM3);
    printf("%c",sendrequest[k]);
    fprintf(wfile,"%c",sendrequest[k]);
    }
    printf("\n");
    fprintf(wfile,"\n");
    break;
    case '2' :
    case 27 :
    DONE=1;
    break;
    default :
    printf("\nPress Correct option i.e. either 1 or 2\n");
    
    }
    }
    
    }
    fclose(rfile);
    fclose(wfile);
    }
    Now after compiling it gives zero errors.
    When I execute this program, it receives all things (hardware sent) but send nothing,not a single char.
    Please tell me if anything wrong in my code

    Thanks in advance

  2. #2
    Registered User Codeplug's Avatar
    Join Date
    Mar 2003
    Posts
    4,981
    You'll want to ensure your posted code is indented properly and as readable as possible.

    Why are you doing this in Turbo C?

    gg

Popular pages Recent additions subscribe to a feed