prevod z C do C#

Programovacie jazyky, rady, poradňa...
mikehudak
Amateur
Amateur
Príspevky: 30
Registrovaný: 22 mar 2009, 17:15
Kontaktovať používateľa:

prevod z C do C#

Príspevok od používateľa mikehudak »

Zdravim,

vytvoril som program v C a chcel by som ho prepisat do C#. Co by som mal zmenit v tychto suboroch ?

Program je jednoducha komunikacia dvoch pocitacov cez RS232.

subor prijimac.c

Kód: Vybrať všetko

#include<conio.h>
#include<stdio.h>
#include<dos.h>
#include<ctype.h>

#define PRISLO ( inportb(baza+5)& 1 ) /*makro pre prijem zo ser. linky*/

int baza = 0x3f8; /*bazova adresa portu COM2*/


/*-----------------------Funkcia pre inicializaciu ser. portu------------*/

void inic_sport(void)
{
        char dd;
        dd=0x80; /* DLAB=1 */
        outportb(baza+3,dd);
        dd=12; /* prenos rychlost 19200=6,9600=12,4800=24,2400=48,1200=96 */
        outportb(baza,dd);
        dd=0;
        outportb(baza+1,dd);
        dd=0x1a; /* 7bit 1 stop parna DLAB */
        outportb(baza+3,dd);
}


/************************HLAVNY PROGRAM******************************/

void main()
{
	unsigned char prijmi;
	clrscr();
	inic_sport(); /* zinicializujeme seriovy port */
	do
	{
		if ( PRISLO ) /* kym nepride znak - cakame */
	       {
			prijmi = inportb(baza); /*vyber znaku z BUFFERA */
			printf("%c",prijmi); /* a jeho vytlacenie na obrazovku */
		}
	}while(prijmi != 0x1b); /* Ukoncenie programu ak vysielac vysle ESC*/
}
a subor vysielac.c

Kód: Vybrať všetko

#include<conio.h> 
#include<dos.h> 
#include<stdio.h> 
#include<ctype.h> 

#define PRAZDNE ( inportb(baza+5) & 32 ) /* makro pre cakanie na uvolnenie seriovej linky */ 

int baza = 0x3f8; /* bazova adresa portu COM2 */
  

/*-----------------Funkcia pre vyslanie znaku----------------------------*/ 

void vysli(char w) 
{ 
        while ( !PRAZDNE ); /* dokial nie je prazdne,cakaj */ 
        outportb((int)baza, (unsigned char) w); /* ak je volne,vysli! */ 
} 
  

/*----------------funkcia pre inicializaciu ser. linky-------------------*/ 

void inic_sport(void) 
{ 
        unsigned char dd; 
        dd=0x80; /* DLAB=1 */ 
        outportb(baza+3,dd); /* povolenie pre nastavenie prenos rychlosti*/ 
        dd=12; /* prenos rychlost: 19200=6,9600=12,4800=24 
        2400=48,1200=96 */ 
        outportb(baza,dd);/* dolne bity */ 
        dd=0; 
        outportb(baza+1,dd);/* horne bity */ 
        dd=0x1a; /* 7bit 1stop parna DLAB */ 
        outportb(baza+3,dd); 
} 
  

/************************HLAVNY PROGRAM******************************/ 

void main()
{ 
        char ch; 
        inic_sport(); /* zinicializujeme seriovy port */ 
        clrscr(); 
        do 
        { 
                ch=getche(); /* nacitanie znaku z klavesnice */ 
                vysli(ch); /* jeho vyslanie do prijimaca */ 
                if(ch==13) { vysli(10); /* posle novy riadok do prijmaca ak bol ENTER*/ 
                putch(10);} /* to iste aj pre vysielac */ 
        } while(ch != 0x1b); /* Ukoncenie vysielania vyslanim <ESC> a ukoncenie programu ak stlacime ESC */ 
}
grrJava
Amateur
Amateur
Príspevky: 33
Registrovaný: 12 feb 2012, 16:35

Re: prevod z C do C#

Príspevok od používateľa grrJava »

Toto by ti mohlo pomôcť:
http://www.dreamincode.net/forums/topic ... n-in-c%23/
V C# je myslím trieda SerialPort alebo tak nejak, takže to by ti mohlo pomôcť.
MarkMarusin
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 135
Registrovaný: 30 apr 2011, 13:42

Re: prevod z C do C#

Príspevok od používateľa MarkMarusin »

No v prvom rade musis prepisat aj zdrojaky tak aby sedeli ... napriklad musis importovat kniznice system.net system.net.socket namiesto tych tvojich includov ... a kedze sa s tymito triedami robi inak ako s tymi z C tak si to treba cele nastudovat .... jedine co by sa dalo je asi to ze musis prepisat cely zdrojak ... sry lepsiu radu nemam :(
Napísať odpoveď