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

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice