Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   Help writing a simple Ymodem Send (http://www.go4expert.com/forums/help-writing-simple-ymodem-send-t11320/)

feru33 13Jun2008 20:23

Help writing a simple Ymodem Send
 
Hey there, I'm fairly new to programming but have been tasked with writing a Ymodem send program to send some data that I parsed out to hardware. So far I have parsed data into a char array, and then opened up a serial port. I just don't know where to begin in writing a Ymodem send program (the receiving end was written by someone else). Here is my code for opening the serial port, now I am stuck in implementing the actual Ymodem protocol. I have searched for code online but most of it makes use of extra libraries that I don't have. I am currently writing this in Visual C++ . Any help would be greatly appreciated, Thanks!

Code for Serial Port:
"
Code:

#include "stdafx.h"
#include "windows.h"
#include "string.h"
#include "stdio.h"

HANDLE hComPort;
BOOL SetCommDefaults(HANDLE hSerial);

int main()
{
        hComPort = CreateFile("\\\\.\\COM24", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
        if (hComPort == INVALID_HANDLE_VALUE){
                        return FALSE;
                        SetCommDefaults(hComPort);
                        printf("E012_Failed to open port");
        }else{

        SetCommDefaults(hComPort);
       
        DWORD dwBytesRead =0;
        DWORD dwBytesWritten =1;

        char buf[50];

                sprintf(buf,"I am connected to hyperterminal\n");

                WriteFile(hComPort, buf, strlen(buf), &dwBytesWritten,NULL);
        }

                CloseHandle(hComPort);

                return 0;
}


BOOL SetCommDefaults(HANDLE hComPort)
{
        DCB dcb;
        dcb.BaudRate = 115200;
        dcb.ByteSize = 8;
        dcb.Parity = 0;
        dcb.StopBits = ONESTOPBIT;
        dcb.fDtrControl = DTR_CONTROL_DISABLE;
        dcb.fDtrControl = RTS_CONTROL_DISABLE;
       
        if(!SetCommState(hComPort, &dcb))
                return FALSE;
        return TRUE;
}

"


All times are GMT +5.5. The time now is 03:21.