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

    Joined:
    Jun 13, 2008
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    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;
    }
    "
     
    Last edited by a moderator: Jun 13, 2008

Share This Page