View Full Version : Sending Data
Raven_Writer
09-09-2003, 19:50
Ok, I'm almost done w/ my PBASIC Editor, and I'm just wondering...how would you send the code (in MFC)?
I've created a thread, and it doesn't have any problems.
I've been looking at how roboIDE sent the code, and if anyone can just translate these from Linux to Windows I would be set (I don't know any *nux programming):
read(fd, data, bytes);
I know the "read(...);" function reads the data from a port...but I'm not sure of the equivalent of it in Windows.
write(fd, data, bytes);
Save as "read(...);"
close(fd);
I've attempted "CloseHandle(...);", but it throws back a error.
int openSerial(char *port){
int fd;
struct termios tios;
fd=open(port, O_NOCTTY | O_RDWR | O_NONBLOCK);
if(fd<0){
sprintf(lastError, "%s: %s\n", port, strerror(errno));
return fd;
}
bzero(&tios, sizeof(termios));
tios.c_cflag = BAUDRATE | CS8 | CREAD;
tios.c_iflag = IGNPAR;
tios.c_oflag=0;
tios.c_lflag=0;
//satisfy read immediately.
tios.c_cc[VTIME]=0;
tios.c_cc[VMIN]=0;
tcflush(fd, TCIFLUSH);
tcsetattr(fd, TCSANOW, &tios);
return fd;
}
<<EDIT>>: I know fd stands for file directive (I think anyways).
Brandon Martus
09-09-2003, 21:51
Originally posted by Raven_Writer
<<EDIT>>: I know fd stands for file directive (I think anyways). File Descriptor. I can't help with your actual question, though, .. sorry
Raven_Writer
10-09-2003, 13:11
Originally posted by Brandon Martus
File Descriptor. I can't help with your actual question, though, .. sorry
Thanks Brandon ;) I talked to Rob last night, and now I only need help on the last code section. read() = ReadFile(), write() = WriteFile().
<< Edit >>: The stuff below bolded is what I don't get:
int openSerial(char *port){
struct termios tios;
fd=open(port, O_NOCTTY | O_RDWR | O_NONBLOCK);
if(fd<0){
sprintf(lastError, "%s: %s\n", port, strerror(errno));
return fd;
}
tios.c_cflag = BAUDRATE | CS8 | CREAD;
tios.c_iflag = IGNPAR;
tios.c_oflag=0;
tios.c_lflag=0;
//satisfy read immediately.
tios.c_cc[VTIME]=0;
tios.c_cc[VMIN]=0;
tcflush(fd, TCIFLUSH);
tcsetattr(fd, TCSANOW, &tios);
return fd;
}
You're trying to mix POSIX and Win32. The two are NOT compatible and probably never will be, knowing MS. Instead, I'd recomend you grab code snippets out of RoboGUI, as it also has the ability to tokenize and send directly to the RC.
-Rob
Raven_Writer
10-09-2003, 16:41
Originally posted by rbayer
You're trying to mix POSIX and Win32. The two are NOT compatible and probably never will be, knowing MS. Instead, I'd recomend you grab code snippets out of RoboGUI, as it also has the ability to tokenize and send directly to the RC.
-Rob
Ok, thanks. I've been able to get most of the code to compile without error though (not been able to actually send though, not tested that far). I've been looking through both RoboGUI and RoboEMU, and RoboGUI I thought had some sending code (and apperently I'm right, woo hoo!).
Again, thanks.
Rickertsen2
10-09-2003, 22:48
If i remember correctly, there is an MSDN article on serial port communications, with code samples.
<edit>
or maybie not. I can't seem to find the article. I know im not crazy. Im pretty sure i saw it at one time or another.
</edit>
Raven_Writer
11-09-2003, 14:46
I've got my program 99.9% running without problems. Only problem I'm having right now is having it not close when it cannot connect/send data to a specific port.
If you would like to see my code for it (it'll be a big thing to post on CD), IM, PM, or e-mail me.
Umm... more details, please. What is/isn't closing that shouldn't/should be? Are you talking about the file handle? Or the program itself.
/me=:confused:
Raven_Writer
11-09-2003, 16:28
Originally posted by rbayer
Umm... more details, please. What is/isn't closing that shouldn't/should be? Are you talking about the file handle? Or the program itself.
/me=:confused:
Sorry. Here's what happens:
I open a file that has the default code for v2 of PBASIC that Innovation First supplied us, and goto Run->Download (which downloads the code). When I do that, what happens is that it shows two message boxes saying "Error getting serial port status" (which I can pin-point where the main problem seems to be). Then after I click OK twice (once for each message box), the program itself closes.
(I know this may be a bunch of wasted typing, but I hope that it clears it up as much as possible)
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.