DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C++ (http://www.daniweb.com/forums/forum8.html)
-   -   Help writing a simple Ymodem Send (http://www.daniweb.com/forums/thread129218.html)

feru33 Jun 13th, 2008 12:24 pm
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!

#include "stdafx.h"
#include "windows.h"
#include "string.h"
#include "stdio.h"
#include "ymodem.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 -4. The time now is 4:25 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC