T
theone_in_themoon
Guest
Hello Everybody ...
Ive videl docela Handsome Zb.pracovných miest o sériovej komunikácie cez port RS-232 ....Ale môj problém je trochu divné.
Im pomocou jednoduchého kódu prečítať súboru znak po znaku a transmitt je sériovo.Wat chcem urobiť, je v skutočnosti poslať súbor WAV sériovo na správcu, Micro, ktorá ukladá sa do CF karty.
V súčasnej dobe im testing ju poslať súbor správne.Ale aj keď aj spojiť traans a prijímať zo Serial Port (COM1) program zavesia až po odoslaní cca.250 bytov.
Ive tried odosielanie textových súborov a ktorý je odoslaný correcly ....ale pri posielanie súborov WAV ....program iba nalepia po 251 bytov.
Ive hral s veľa ...a ive si všimol, že keď dáme odkladu po tom, čo bioscom poslať znak príkazového riadku ......potom dôjde k zmene v ne.z byets po ktorom uviazne to.Ale Max je preč, je cca 340 bytov.
Tu je kód:
Kód:/ *
TOTO JE PROGRAM NA ČÍTAJTE FILE BY BYTE BYTE a pošle ju
Serial Port.Avšak to tiež dostáva rovnakú CHAR SPÄŤ A ju zapíše
Určenom mieste.*** IT nečaká na CHAR DOSTAL ...
Ktoré majú byť prijaté* /# Include <conio.h>
# Include <iostream.h>
# Include <dos.h>
# Include <process.h>
# Include <stdio.h>
# Include <string.h>
# Include <fcntl.h>
# Include <io.h>
# Include <bios.h>
# Define COM1 0
# Define DATA_READY 0x100
# Define TRUE 1
# Define FALSE 0
# Define Settings (0x80 | 0x03 | 0x00 | 0x00)void main (void)
(
clrscr ();FILE * file_r;FILE * file_w;char path_r [50];
char path_w [50];dlho ctr_r = 0;
dlho filesize = 0;int handle = 0;
int stav = 0;unsigned char ch_rx = 0;
unsigned char ch_tx = 0;bioscom (0, NASTAVENIE, COM1);cout << "\ n \ nEnter cesta k súboru pre čítanie:";
gets (path_r);cout << "\ n \ nEnter cesta k súboru pre zápis:";
gets (path_w);handle = open (path_r, O_RDONLY);
filesize = filelength (handle);
close (handle);
cout << "Veľkosť súboru:" <<filesize <<endl;file_r = fopen (path_r, "rb"); / / "rb" iba pre čítanie v binárnomif (! file_r)
(
perror ( "Read FILE ERROR");
getch ();
exit (0);
)file_w = fopen (path_w, "WB" );//" WB "pre zápis iba v BINARYif (! file_w)
(
perror ( "Write FILE ERROR");
getch ();
exit (0);
)/ / Slučka do konca súboru pre čítanie
while (ctr_r <filesize)
(
ch_tx = fgetc (file_r);
bioscom (1, ch_tx, COM1);
cout <<endl << "Ch_Tx:" <<ch_tx;status = bioscom (3, 0, COM1);
if (status & DATA_READY)
(
ch_rx = bioscom (2, 0, COM1);
fputc (ch_rx, file_w);
cout <<endl << "Ch_Rx:" <<ch_rx << "" <<ctr_r;
/ / Wait = 0;
/ / Getch ();
)ctr_r ;
)fclose (file_r);
fclose (file_w);cout << "\ n \ n \ WAV súbor vytvorený!" <<endl;
getch ();
) / / Koniec hlavných
Ive videl docela Handsome Zb.pracovných miest o sériovej komunikácie cez port RS-232 ....Ale môj problém je trochu divné.
Im pomocou jednoduchého kódu prečítať súboru znak po znaku a transmitt je sériovo.Wat chcem urobiť, je v skutočnosti poslať súbor WAV sériovo na správcu, Micro, ktorá ukladá sa do CF karty.
V súčasnej dobe im testing ju poslať súbor správne.Ale aj keď aj spojiť traans a prijímať zo Serial Port (COM1) program zavesia až po odoslaní cca.250 bytov.
Ive tried odosielanie textových súborov a ktorý je odoslaný correcly ....ale pri posielanie súborov WAV ....program iba nalepia po 251 bytov.
Ive hral s veľa ...a ive si všimol, že keď dáme odkladu po tom, čo bioscom poslať znak príkazového riadku ......potom dôjde k zmene v ne.z byets po ktorom uviazne to.Ale Max je preč, je cca 340 bytov.
Tu je kód:
Kód:/ *
TOTO JE PROGRAM NA ČÍTAJTE FILE BY BYTE BYTE a pošle ju
Serial Port.Avšak to tiež dostáva rovnakú CHAR SPÄŤ A ju zapíše
Určenom mieste.*** IT nečaká na CHAR DOSTAL ...
Ktoré majú byť prijaté* /# Include <conio.h>
# Include <iostream.h>
# Include <dos.h>
# Include <process.h>
# Include <stdio.h>
# Include <string.h>
# Include <fcntl.h>
# Include <io.h>
# Include <bios.h>
# Define COM1 0
# Define DATA_READY 0x100
# Define TRUE 1
# Define FALSE 0
# Define Settings (0x80 | 0x03 | 0x00 | 0x00)void main (void)
(
clrscr ();FILE * file_r;FILE * file_w;char path_r [50];
char path_w [50];dlho ctr_r = 0;
dlho filesize = 0;int handle = 0;
int stav = 0;unsigned char ch_rx = 0;
unsigned char ch_tx = 0;bioscom (0, NASTAVENIE, COM1);cout << "\ n \ nEnter cesta k súboru pre čítanie:";
gets (path_r);cout << "\ n \ nEnter cesta k súboru pre zápis:";
gets (path_w);handle = open (path_r, O_RDONLY);
filesize = filelength (handle);
close (handle);
cout << "Veľkosť súboru:" <<filesize <<endl;file_r = fopen (path_r, "rb"); / / "rb" iba pre čítanie v binárnomif (! file_r)
(
perror ( "Read FILE ERROR");
getch ();
exit (0);
)file_w = fopen (path_w, "WB" );//" WB "pre zápis iba v BINARYif (! file_w)
(
perror ( "Write FILE ERROR");
getch ();
exit (0);
)/ / Slučka do konca súboru pre čítanie
while (ctr_r <filesize)
(
ch_tx = fgetc (file_r);
bioscom (1, ch_tx, COM1);
cout <<endl << "Ch_Tx:" <<ch_tx;status = bioscom (3, 0, COM1);
if (status & DATA_READY)
(
ch_rx = bioscom (2, 0, COM1);
fputc (ch_rx, file_w);
cout <<endl << "Ch_Rx:" <<ch_rx << "" <<ctr_r;
/ / Wait = 0;
/ / Getch ();
)ctr_r ;
)fclose (file_r);
fclose (file_w);cout << "\ n \ n \ WAV súbor vytvorený!" <<endl;
getch ();
) / / Koniec hlavných