1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Help writing a simple Ymodem Send

Discussion in 'C' started by feru33, Jun 13, 2008.

  1. feru33

    feru33 New Member

    Jun 13, 2008
    Likes Received:
    Trophy Points:
    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:
    #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;
    			printf("E012_Failed to open port");
    	DWORD dwBytesRead =0;
    	DWORD dwBytesWritten =1;
    	char buf[50];
    		sprintf(buf,"I am connected to hyperterminal\n");
    		WriteFile(hComPort, buf, strlen(buf), &dwBytesWritten,NULL);
    		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;
    Last edited by a moderator: Jun 13, 2008

Share This Page