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;
}