Boa tarde,
Continuo com 1 problema para guardar dados que recebo da porta série para ficheiro. Usei algumas indicaçoes que me deram aqui no forum acerca de ficheiros, mas nao sei se usei isto correctamente. Vou deixar o codigo para que alguem me ajude por favor:
==========================================================
#include <bios.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define COM2 1
#define DATA_READY 0x100
#define TRUE 1
#define FALSE 0
#define SETTINGS ( 0x16 | 0x00 | 0x03 | 0x00)
int main(void)
{ int in, out, status, DONE = FALSE;
FILE *pf;
bioscom(0, SETTINGS, COM2);/* inicializacao*/
printf("... BIOSCOM [ESC] to exit ...\n");
while (!DONE)
{
status = bioscom(3, 0, COM2);/*ha dados para mostrar?*/
if (status & DATA_READY) /*bit 8 a 1 ?*/
if ((out = bioscom(2, 0, COM2) & 0x7F) != 0)
printf("%x", out);
/*Escrever para Ficheiro*/
if (kbhit()) /* se qualquer tecla pressionada*/
{
if ((in = getch()) == '\x1B') /* se a tecla for esc*/
DONE = TRUE;/* interrompa-se*/
bioscom(1, in, COM2); /*avisa o transmit.exe*/
}
}
return 0;
}
================================================
Portanto, preciso de guardar os dados devolvidos pelo printf (que coloquei a bold) atraves da variavel out. Os dados sao recebidos em hexadecimal.
Fico muito grato a quem me puder ajudar.
1 abraço.
Continuo com 1 problema para guardar dados que recebo da porta série para ficheiro. Usei algumas indicaçoes que me deram aqui no forum acerca de ficheiros, mas nao sei se usei isto correctamente. Vou deixar o codigo para que alguem me ajude por favor:
==========================================================
#include <bios.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define COM2 1
#define DATA_READY 0x100
#define TRUE 1
#define FALSE 0
#define SETTINGS ( 0x16 | 0x00 | 0x03 | 0x00)
int main(void)
{ int in, out, status, DONE = FALSE;
FILE *pf;
bioscom(0, SETTINGS, COM2);/* inicializacao*/
printf("... BIOSCOM [ESC] to exit ...\n");
while (!DONE)
{
status = bioscom(3, 0, COM2);/*ha dados para mostrar?*/
if (status & DATA_READY) /*bit 8 a 1 ?*/
if ((out = bioscom(2, 0, COM2) & 0x7F) != 0)
printf("%x", out);
/*Escrever para Ficheiro*/
if((pf = fopen("arquivo.txt", "w")) == NULL) /* Abre arquivo para escrita */
{
printf("Erro na abertura do arquivo");
exit(1);
}
if(fwrite(&out, sizeof(int), 1,pf) != 1) /* Escreve os dados de out */
printf("Erro na escrita do arquivo");
fclose(pf); /* Fecha o arquivo */
/*Final de escrever ficheiro*/
if (kbhit()) /* se qualquer tecla pressionada*/
{
if ((in = getch()) == '\x1B') /* se a tecla for esc*/
DONE = TRUE;/* interrompa-se*/
bioscom(1, in, COM2); /*avisa o transmit.exe*/
}
}
return 0;
}
================================================
Portanto, preciso de guardar os dados devolvidos pelo printf (que coloquei a bold) atraves da variavel out. Os dados sao recebidos em hexadecimal.
Fico muito grato a quem me puder ajudar.
1 abraço.