Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Destiny Rising: quando un gioco mobile supera il gioco originale
Destiny Rising: quando un gioco mobile supera il gioco originale
Tra il declino di Destiny 2 e la crisi di Bungie, il nuovo titolo mobile sviluppato da NetEase sorprende per profondità e varietà. Rising offre ciò che il live service di Bungie non riesce più a garantire, riportando i giocatori in un universo coerente. Un confronto che mette in luce i limiti tecnici e strategici dello studio di Bellevue
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-10-2007, 21:11   #1
lukayak
Junior Member
 
Iscritto dal: Oct 2007
Messaggi: 1
RS232 lettura con C++

Ciao a tutti, ho un problema
ho un problema con un programma scritto in C++. il progetto che ho preso dalla rete(con consenso dell'autore) aveva un ingresso da porta parallela.
Vorrei tramutarla in in gresso RS232 dalla COM1. Ho modificato cosi il codice in modo che il dato che veniva preso dalla parallela ora viene preso dalla com1, peccato che devo aver sbagliato qualcosa, perchè non funziona.

Ecco il codice di uno dei file del progetto, quello nel quale ho cambiato le varie cose.

// MCP3002.cpp: implementation of the MCP3002 class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MCP3002.h"
#include "MultimediaTimer.h"
#include "ADC3002.h"


#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif


//_________________________________________

//Delcare out timer function
//Function must be static
static void TimerFunction(void* obj,UINT idEvent);

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

MCP3002::MCP3002()
{ //inizializzazione membro privato.
hComm = CreateFile("COM1", //porta sorgente dati
GENERIC_READ,//solo in lettura
0,//handle non condiviso
0, //
OPEN_EXISTING,//
FILE_FLAG_OVERLAPPED,//
0);
if (hComm == INVALID_HANDLE_VALUE)exit(1);
// error opening port; abort
DCB dcb;
BOOL res;

dcb.ByteSize = 8;
dcb.StopBits =ONESTOPBIT;
dcb.BaudRate = CBR_9600;
dcb.Parity = NOPARITY;
dcb.fAbortOnError = 0;
//Set new state
res = SetCommState(hComm,&dcb);
}

MCP3002::~MCP3002()
{
if (hComm != INVALID_HANDLE_VALUE)CloseHandle(hComm);//chiude se gia inizializato prima
}


void TimerFunction(void* obj,UINT idEvent)
{
//This is our timer actevated function
//First get a pointer to class functions
MCP3002* mcp = (MCP3002*) obj;
//Activate class functions
mcp->HandleTimer(idEvent);

}

void MCP3002::HandleTimer(UINT nIDEvant)
{
//This function is activated from MM timer events
//Because we need to make 5000 samples do them
if(i_mmcount<=5000)
{
//GetADC Samples
Channel_0[i_mmcount] = ADC_Ch_0();
Channel_1[i_mmcount] = ADC_Ch_1();
//update counter
i_mmcount++;
}

//After we have done all samples stop sampling and MM timer
if(i_mmcount>5000)
{
MMT_Stop();//Stop MMTimer
DoEndNotification();//Make a notification to the program
}

}
void MCP3002::MMT_Stop()
{
//This function stops the MM timer
Sleep(10);
TEnd = CTime::GetCurrentTime();
//Stop timer
MMTimer.StopTimer();
Sleep(10);
}




void MCP3002::MMT_Start(unsigned short LPT)
{
//This function sets the LPT type
//Zero the counter and after this stop the timer
//Now it can be restarted and do samples
i_mmcount = 0;
LPT_PORT = LPT;
//If MMTimer alredy runs stop it now!
MMT_Stop();
//Before start timer get the time moment
TStart = CTime::GetCurrentTime();
//Do timer event any 2 msec = 500Hz +- 2Hz
MMTimer.StartTimer(this,2,10,TimerFunction);

}

unsigned short MCP3002::ADC_Ch_0()
{
//adc3002.GetChanne_0(LPT_PORT,10);
return (unsigned short)GetByteOnSerial();

}


unsigned short MCP3002::GetByteOnSerial()
{

unsigned short c;
DWORD NumberOfBytesRead;
DWORD nNumberOfBytesToRead = 1;
BOOL bResult;

nNumberOfBytesToRead=1;
DWORD nNumberOfBytesRead=0;

bResult = ReadFile(
hComm,
&c,
nNumberOfBytesToRead,
&NumberOfBytesRead,
NULL
);
FILE *pFile; //ho provato a stampare su un file i dati per vedere cosa
pFile=fopen("myfile.txt","w+"); //veniva fuori. scrive solo 6 lettere.
if(pFile!=NULL){
fprintf (pFile, "%x\n",&c);
fclose (pFile);
}
if(NumberOfBytesRead>0)
return (unsigned short)c;

return 0;
}


unsigned short MCP3002::ADC_Ch_1()
{
return (unsigned short)GetByteOnSerial();

}

void MCP3002::SetEndSampleNotification(void *obj, EndSampleNotification endnotification)
{
//Sets the end sample notification event
//so it will be activated after sampling period
object = obj;
//See declaration of EndSampleNotification
EndNotification = endnotification;

}

void MCP3002:oEndNotification()
{
//This function activates a function and pass a parameters
//to in our class
int len;
len = 5000;
//activates a function EndNotification see declaretion
EndNotification(object,&Channel_0[0],&Channel_1[0],len,TStart,TEnd);

}


Questo è un file che fa parte di un progetto che potrete trovare per intero a http://www.codeproject.com/tools/ecg_dsp.asp

Se vi viene in mente qualcosa ditemi.

Grazie mille!!!
lukayak è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Interlune creerà un centro di ric...
Stop Killing Games: 97% delle firme conv...
La GTX 2080 Ti mai arrivata sul mercato,...
Hoolow Knight: Silksong, il gioco che a ...
Duolingo crolla in Borsa: la minaccia ar...
Battlefield 6: i giocatori console potra...
Citroen Racing, la marca ritorna alle co...
Windows 10 ESU: come partecipare al prog...
ASUS Vivobook 16X a meno di 470€ su Amaz...
Con Agent Payments Protocol di Google gl...
Windows 10 muore, gli attivisti insorgon...
NVIDIA sarà il primo cliente di T...
Stellantis cancella il pick-up elettrico...
Microsoft termina il supporto per Office...
VaultGemma di Google è il primo L...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v