Ejemplo n.º 1
0
// Close communication (you can reopen it later)
void CCPCBooster::ClosePort()
{
	if (_currentState == PortOpened)
	{
		RS232_CloseComport(_COMPortHandle);
	}
	_currentState = PortClosed;
}
Ejemplo n.º 2
0
char _RS232_ReadByte(int comport_number, int line){
	char data = -1;
	int count = 0;
	while(RS232_PollComport(comport_number, &data, 1) == 0 && count < MAX_TRIES)
		count++;
	if(count >= MAX_TRIES){
		RS232_CloseComport(COMPORT);
		UNITY_TEST_FAIL(line,"Attempt to read byte but comport seems not responsive");
	}
	return data;
}
Ejemplo n.º 3
0
int main()
{
    char HC0x = HC05;
    char pString[128] = {0};

    printf("DeviceType : ");
    scanf ("%d", &HC0x);
    if(HC0x == HC05) {
        baudrate = 38400;
    }
    else {
        printf("Baudrate : ");
        scanf ("%d", &baudrate);
    }

    /* Open COM Port */
    if(!RS232_OpenComport(com_port, baudrate, mode)) {
        printf("Open COM Port Success\n\n");

        do {
            printf("AT Command : ");
            scanf ("%s",pString);
            bt_sendATCommand(HC0x, pString);
        } while(strcmp("EXTI", pString) != 0);

        bt_sendATCommand(HC0x, "AT");
        bt_sendATCommand(HC0x, "AT+ORGL");        //
        bt_sendATCommand(HC0x, "AT+ROLE=1");      //
        bt_sendATCommand(HC0x, "AT+ROLE?");       //
        bt_sendATCommand(HC0x, "AT+PSWD=0000");   //
        bt_sendATCommand(HC0x, "AT+PSWD?");
        bt_sendATCommand(HC0x, "AT+UART=115200,0,0");
        bt_sendATCommand(HC0x, "AT+UART?");
        bt_sendATCommand(HC0x, "AT+CMODE=0");
        bt_sendATCommand(HC0x, "AT+CMODE?");
        printf("AT+BIND=");
        scanf ("%s",pString);
        bt_sendBIND(HC0x, pString);
        bt_sendATCommand(HC0x, "AT+BIND?");
    }
    else {
        printf("Open COM Port Error\n");
    }

    /* Close COM Port */
    RS232_CloseComport(com_port);
    printf("\n\nClose COM Port\n");

    return(0);
}
Ejemplo n.º 4
0
int main(void){
	int i;
	char charReceived, char2Send = 0;
	printf("Test UART, ready to receive character!!!\n");
	RS232_OpenComport(COMPORT, baudrate);
	char2Send = getch();
	while(char2Send != ESC_KEY){
		RS232_SendByte(COMPORT, char2Send);
		charReceived = RS232_ReadByte(COMPORT);
		printf("%c", charReceived);
		char2Send = getch();
	}
	if(char2Send == ESC_KEY)
		printf("BYE\n");
	RS232_CloseComport(COMPORT);
}
Ejemplo n.º 5
0
void FPGAFitnessCalculator::fitness(std::vector<Cromossomo>& populacao) {
    int bauds = 115200;
    int comport_num = 6;
    char mode[10] = "8N1";
    if (RS232_OpenComport(comport_num, bauds, mode)) {
        fprintf(stderr, "Nao consegui abrir COM port %d\n", comport_num + 1);
        exit(1);
    }

    for (unsigned int i = 0; i < populacao.size(); i++) {
        enviar_individuo(comport_num, populacao[i]);
        populacao[i].set_fitness(
            fitness_calculator(receive_data(comport_num)));
    }

    RS232_CloseComport(comport_num);
}
Ejemplo n.º 6
0
int rs232_CloseComport (U1 *pthreads_ptr, U1 *varlist_ptr, U1 *vm_mem_ptr, S4 threadnum, S8 stacksize)
{
	S8 portnumber;

	struct pthreads *pthreads;
	struct varlist *varlist;
	struct vm_mem *vm_mem;
	
	pthreads = (struct pthreads *) pthreads_ptr;
	varlist = (struct varlist *) varlist_ptr;
	vm_mem = (struct vm_mem *) vm_mem_ptr;

	if (stpull_l (threadnum, pthreads, stacksize, &portnumber) != ERR_STACK_OK) printf ("rs232_CloseComport stack error!\n");
	
	RS232_CloseComport (portnumber);
	
	return (0);
}
Ejemplo n.º 7
0
void test_uartLoopback_should_echo_bytes_sent(void){
	char buffer[256], *dataPtr = buffer;
	
	RS232_OpenComport(COMPORT, baudrate);
	RS232_SendByte(COMPORT,'H');
	*(dataPtr++) = RS232_ReadByte(COMPORT);
	RS232_SendByte(COMPORT,'e');
	*(dataPtr++) = RS232_ReadByte(COMPORT);
	RS232_SendByte(COMPORT,'l');
	*(dataPtr++) = RS232_ReadByte(COMPORT);
	RS232_SendByte(COMPORT,'l');
	*(dataPtr++) = RS232_ReadByte(COMPORT);
	RS232_SendByte(COMPORT,'o');
	*(dataPtr++) = RS232_ReadByte(COMPORT);
	*(dataPtr++) = '\0';
	RS232_CloseComport(COMPORT);
	
	TEST_ASSERT_EQUAL_STRING("Hello",buffer);
	
}
Ejemplo n.º 8
0
int main()
{
    int state = RS232_ERROR;

    int com_port = 6;       /* COM7 */
    int baudrate = 115200;  /* 115200 */
    char mode[]  = {'8', 'N', '1', 0};

    int i = 0, n = 0;
    unsigned long count = 2000000;

    unsigned char recv_buf[RECV_BUF_SIZE + 1] = {0};

    /* Open COM Port */
    state = RS232_OpenComport(com_port, baudrate, mode);
    if(!state)
        printf("Open COM Port Success\n\n");

    do {
        n = RS232_PollComport(com_port, recv_buf, RECV_BUF_SIZE);
//        printf("count = %4i, n = %i, recv data = ", count, n);
        if(n == 5) {
            printf("count = %7i, n = %i, recv data = ", count, n);
            recv_buf[n] = '\0';
            printf("%s", (char *)recv_buf);
        }
        else if(n > 0) {
            printf("count = %4i, n = %i, recv data = ", count, n);
            printf("*****\n");
        }
 //      Sleep(1);
    } while(--count);

    /* Close COM Port */
    RS232_CloseComport(com_port);
    printf("\nClose COM Port\n");

    return(0);
}
Ejemplo n.º 9
0
SBGInsIg500N::~SBGInsIg500N()
{
	RS232_CloseComport(port);
}
int main() {
	read_config();
	
	printf("GBCartRead v1.8 by insideGadgets\n");
	printf("################################\n\n");
	
	printf("Opening COM PORT %d at %d baud...\n\n", cport_nr+1, bdrate);
	
	// Open COM port
	if(RS232_OpenComport(cport_nr, bdrate)) {
		printf("Can not open comport\n");
		return(0);
	}
	
	#ifdef _WIN32
	Sleep(2000);
	#else
	usleep(2000000); // Sleep for 2 seconds
	#endif
	
	char userInput = '0';
	while (1) {
		printf ("\nSelect an option below\n0. Read Header\n1. Dump ROM\n2. Save RAM\n3. Write RAM\n4. Exit\n");
		printf (">");
		userInput = read_one_letter();
		
		if (userInput == '0') {
			headercounter = 0;
			RS232_cputs(cport_nr, "HEADER\n");
			
			unsigned char buffer[4096];
			int n = 0;
			int waitingforheader = 0;
			while (1) {
				n = RS232_PollComport(cport_nr, buffer, 4095);
				if (n > 0) {
					buffer[n] = 0;
					fflush(stdout);
					break; // Got the data, exit
				}
				else {
					waitingforheader++;
					if (waitingforheader >= 50) {
						break;
					}
					
					#ifdef _WIN32
					Sleep(50);
					#else
					usleep(50000); // Sleep for 100 milliseconds
					#endif
				}
			}
			
			char* tokstr = strtok ((char *) buffer, "\r\n");
			while (tokstr != NULL) {
				if (headercounter == 0) {
					printf ("\nGame title... ");
					printf ("%s\n", tokstr);
					strncpy(gametitle, tokstr, 30);
				}
				if (headercounter == 1) {
					printf ("MBC type... ");
					cartridgeType = atoi(tokstr);
					
					switch (cartridgeType) {
						case 0: printf ("ROM ONLY\n"); break;
						case 1: printf ("MBC1\n"); break;
						case 2: printf ("MBC1+RAM\n"); break;
						case 3: printf ("MBC1+RAM+BATTERY\n"); break;
						case 5: printf ("MBC2\n"); break;
						case 6: printf ("MBC2+BATTERY\n"); break;
						case 8: printf ("ROM+RAM\n"); break;
						case 9: printf ("ROM ONLY\n"); break;
						case 11: printf ("MMM01\n"); break;
						case 12: printf ("MMM01+RAM\n"); break;
						case 13: printf ("MMM01+RAM+BATTERY\n"); break;
						case 15: printf ("MBC3+TIMER+BATTERY\n"); break;
						case 16: printf ("MBC3+TIMER+RAM+BATTERY\n"); break;
						case 17: printf ("MBC3\n"); break;
						case 18: printf ("MBC3+RAM\n"); break;
						case 19: printf ("MBC3+RAM+BATTERY\n"); break;
						case 21: printf ("MBC4\n"); break;
						case 22: printf ("MBC4+RAM\n"); break;
						case 23: printf ("MBC4+RAM+BATTERY\n"); break;
						case 25: printf ("MBC5\n"); break;
						case 26: printf ("MBC5+RAM\n"); break;
						case 27: printf ("MBC5+RAM+BATTERY\n"); break;
						case 28: printf ("MBC5+RUMBLE\n"); break;
						case 29: printf ("MBC5+RUMBLE+RAM\n"); break;
						case 30: printf ("MBC5+RUMBLE+RAM+BATTERY\n"); break;
						case 99: printf ("WISDOM TREE MAPPER\n"); break;
						case 252: printf("Gameboy Camera\n"); break;
						default: printf ("Not found\n");
					}
				}
				else if (headercounter == 2) {
					printf ("ROM size... ");
					romSize = atoi(tokstr);
					
					switch (romSize) {
						case 0: printf ("32KByte (no ROM banking)\n"); break;
						case 1: printf ("64KByte (4 banks)\n"); break;
						case 2: printf ("128KByte (8 banks)\n"); break;
						case 3: printf ("256KByte (16 banks)\n"); break;
						case 4: printf ("512KByte (32 banks)\n"); break;
						case 5: 
							if (cartridgeType == 1 || cartridgeType == 2 || cartridgeType == 3) {
								printf ("1MByte (63 banks)\n");
							}
							else {
								printf ("1MByte (64 banks)\n");
							}
							break;
						case 6: 
							if (cartridgeType == 1 || cartridgeType == 2 || cartridgeType == 3) {
								printf ("2MByte (125 banks)\n");
							}
							else {
								printf ("2MByte (128 banks)\n");
							}
							break;
						case 7: printf ("4MByte (256 banks)\n"); break;
						case 82: printf ("1.1MByte (72 banks)\n"); break;
						case 83: printf ("1.2MByte (80 banks)\n"); break;
						case 84: printf ("1.5MByte (96 banks)\n"); break;
						default: printf ("Not found\n");
					}
				}
				else if (headercounter == 3) {
					printf ("RAM size... ");
					ramSize = atoi(tokstr);
					
					switch (ramSize) {
						case 0: 
							if (cartridgeType == 6) {
								printf ("512 bytes (nibbles)\n");
							}
							else {
								printf ("None\n");
							}
							break;
						case 1: printf ("2 KBytes\n"); break;
						case 2: printf ("8 KBytes\n"); break;
						case 3: printf ("32 KBytes (4 banks of 8Kbytes)\n"); break;
						case 4: printf ("128 KBytes (16 banks of 8Kbytes)\n"); break;
						default: printf ("Not found\n");
					}
				}
				else if (headercounter == 4) {
					printf ("Logo check... ");
					logoCheck = atoi(tokstr);
					
					if (logoCheck == 1) {
						printf ("OK\n");
					}
					else {
						printf ("Failed\n");
					}
				}
				
				tokstr = strtok (NULL, "\r\n");
				headercounter++;
			}
			fflush(stdout);
		}
		else if (userInput == '1') {    
			printf ("\nDumping ROM to %s.gb... ", gametitle);
			strncpy(filename, gametitle, 20);
			strcat(filename, ".gb");
			write_to_file(filename, "READROM\n", 32);
			printf ("\nFinished\n");
		}
		else if (userInput == '2') {    
			printf ("\nDumping RAM to %s.sav... ", gametitle);
			strncpy(filename, gametitle, 20);
			strcat(filename, ".sav");
			write_to_file(filename, "READRAM\n", 1);
			printf ("\nFinished\n");
		}
		else if (userInput == '3') { 
			printf ("\nGoing to write to RAM from %s.sav...", gametitle);
			printf ("\n*** This will erase the save game from your Gameboy Cartridge ***");
			printf ("\nPress y to continue or any other key to abort.");
			printf ("\n>");
			
			char userInputConfirm = read_one_letter();	
			
			if (userInputConfirm == 'y') {
				printf ("\nWriting to RAM from %s.sav... ", gametitle);
				strncpy(filename, gametitle, 20);
				strcat(filename, ".sav");
				read_from_file(filename, "WRITERAM\n");
				printf ("\nFinished\n");
			}
			else {
				printf ("\nAborted\n");
			}
		}
		else if (userInput == '4') {
			RS232_CloseComport(cport_nr);
			return(0);
		}
		else {  
			printf ("\nOption not recognised, please try again.\n");
		}
	}
	
	return(0);
}
Ejemplo n.º 11
0
void test_RS232_OpenComport(void) {
  RS232_OpenComport(2, 9600);
  RS232_SendByte(2, 0x6a);
  RS232_CloseComport(COMPORT);
}
FruitSortingApp::~FruitSortingApp(){
	this->alpha=0;
	this->beta=1;
	RS232_CloseComport(COMPORT);
}
Ejemplo n.º 13
0
void LagTestSerialPortComm::closeSerialPort()
{
    RS232_CloseComport( portN );
}
Ejemplo n.º 14
0
void test_RS232_OpenComport(void){
	RS232_OpenComport(COMPORT,baudrate);
	RS232_SendByte(COMPORT,0x85);
	RS232_CloseComport(COMPORT);
}
/**
 * @brief close_all funkcia volana pri zatvarani programu
 * ma nastarosti uzaviriet COM port a log subor
 */
void close_all ()
{
   printf("zatvaram port a log subor\n");
   fclose(logFilePointer);
   RS232_CloseComport(comPort -1);
}
Ejemplo n.º 16
0
Archivo: amodem.c Proyecto: oc224/BB
inline void amodem_close() {
	//close serial port
	RS232_CloseComport(modem.fd);
}
int main(int argc, char *argv[])
{

    char *ptr;
    int i;
    for (i = 1; i < argc; i++) {
        if (argv[i][0] == '-') {
           if (argv[i][1] == 's') // -s number of slaves
           {
               i++;
               numOfSlaves = strtol(argv[i],&ptr,10);
               if (numOfSlaves >= 10 || numOfSlaves <= 0){
                   printf("pocet slave zariadeni musi byt v rozmedzi 1-9\n");
                   printf("pouzitie: 'PktReader [cislo portu] [-b, -s, -h, -p]'\n");
                   printf("priklad: 'PktReader 3 -b 9600' com 3, baudRate 9600 \n");
                   return 0;
               }
           }else
           if (argv[i][1] == 'b') // -b baudrate parameter
           {
               i++;
               baudRate = strtol(argv[i],&ptr,10);
               if (baudRate == 0){
                   printf("zle zadany baudrate\n");
                   printf("pouzitie: 'PktReader [cislo portu] [-b, -s, -h, -p]'\n");
                   printf("priklad: 'PktReader 3 -b 9600' com 3, baudRate 9600 \n");
                   return 0;
               }
           }else
           if (argv[i][1] == 'p') // -p comport number parameter
           {
               i++;
               comPort = strtol(argv[1],&ptr,10);
               if (comPort == 0){
                   printf("zle zadane cilo com portu\n");
                   printf("pouzitie: 'PktReader [cislo portu] [-b, -s, -h, -p]'\n");
                   printf("priklad: 'PktReader 3 -b 9600' com 3, baudRate 9600 \n");
                   return 0;
               }
           }else
           if (argv[i][1] == 'o') // -o output log file
           {
               i++;
               strcpy(logFile,argv[i]);
           }else
           if (argv[i][1] == 'h') // -h help
           {
               printf("\nPkrReader je program spolupracujuci s programom PktGenerator\n");
               printf("Program cita pakety generovane programom PktGenerator\n");
               printf("Data cita z UARTu\n");
               printf("pouzitie: 'PktReader [cislo portu] [-b, -s, -h, -p]'\n");
               printf("priklad: 'PktReader 3 -b 9600' com 3, baudRate 9600 \n");
               printf("parametre: -b baudrate [115200]\n");
               printf("           -p comPort [3]\n");
               printf("           -s pocet slave zariadeni [4]\n");
               printf("           -o output vystupny log subor [log.txt]\n");
               printf("           -h help \n");
               printf("\n");
               return 0;
           }else{
               printf("Invalid option %s", argv[i]);
               return 2;
           }

        } else {
            if (i == 1){
                comPort = strtol(argv[1],&ptr,10);
                if (comPort == 0){
                    printf("zle zadane cilo com portu\n");
                    printf("pouzitie: 'PktReader [cislo portu] [-b, -s, -h, -p]'\n");
                    printf("priklad: 'PktReader 3 -b 9600' com 3, baudRate 9600 \n");
                    return 0;
                }
            }else{
                printf("Invalid option %s",argv[i]);
                return 0;
            }
        }
      }

    bool synchronizeFlag = true;
    struct PRNGslave slaves[numOfSlaves];
    char message[100];
    unsigned char buffer[250];
    int bufferPointer = 0;

    logFilePointer = fopen(logFile,"w+");
    atexit(close_all);

    //inicializovanie hodnot pre slave zariadenia
    for(i=0; i<numOfSlaves;i++)
        PRNGinit(&slaves[i],i+1);

    //inicialaizacia a otvorenie com portu
    char mode[]={'8','N','1',0};
    if(RS232_OpenComport(comPort -1, BAUD_RATE, mode))
    {
      printf("Can not open comport\n");
      printf("neda sa otvorit com port (com port je pravdepodobne otvoreny inou aplikaciou)\n");
      fclose(logFilePointer);
      RS232_CloseComport(comPort -1);
      return 0;
    }
    else{
        printf ( "seriovy com%d port uspesne otvoreny",comPort);
        RS232_flushRXTX(comPort -1);

        std::chrono::time_point<std::chrono::system_clock> start, end;
        start = std::chrono::system_clock::now();

        //nekonecna slucka primajuca data
        unsigned char c;

        while(1){

            while ( 0 == RS232_PollComport(comPort -1, &c, 1));

            //if message
            if (c == '\n')//begining of message
            {
                while(c != '#')//packet
                {
                    fputc(c,logFilePointer);
                    putchar(c);
                    while ( 0 == RS232_PollComport(comPort -1, &c, 1));
                }
                fputc(c,logFilePointer);
                putchar(c);
                while ( 0 == RS232_PollComport(comPort -1, &c, 1));
            }
            //skontroluj ci je prijimanie synchronizovane
            if (synchronizeFlag == true){

                if (c <= '9' || c >= '0' || c >= 'A' || c <= 'F' || c == '$'){//if hexadecimal chars
                    buffer[bufferPointer] = c;
                    bufferPointer++;
                }
                else{
                    printf("\nunexpected char %c ",c);
                }
            }
            else{//cakaj na synchronizacny znak
                if(c == '$')//packet end identifier
                {
                    bufferPointer = 0;
                    synchronizeFlag = true;
                }else{
                    fputc(c,logFilePointer);
                    putchar(c);
                }
            }

            end = std::chrono::system_clock::now();     // pociatanie uplynuleho casoveho useku
            std::chrono::duration<double> elapsed_seconds = end-start;
            if (elapsed_seconds.count() >= 1) {         //after 1 sec.
                print_output(slaves, numOfSlaves);
                start = std::chrono::system_clock::now();
            }

            if (bufferPointer >= sizeof(struct PRNGrandomPacket)*2 && synchronizeFlag == true){

                //konvertuj paket z hexadecimalnej do binarnej podoby
                hexaToBin(&buffer[bufferPointer - sizeof(struct PRNGrandomPacket)*2],buffer,sizeof(struct PRNGrandomPacket));
                buffer[(sizeof(struct PRNGrandomPacket))] = '$';
                buffer[(sizeof(struct PRNGrandomPacket))+1] = '\0';

                if (PRNGcheck(slaves,(struct PRNGrandomPacket*)buffer,(uint8_t *)message,numOfSlaves)){
                    puts(message);
                    fputs(message,logFilePointer);
                    synchronizeFlag = false;
                }
                else{
                    //printf("packet is valid");
                }
                bufferPointer -= ((sizeof(struct PRNGrandomPacket)*2) +1);
            }
        }
    }
}
Ejemplo n.º 18
0
void Hardware::Close()
{
#ifdef USESERIAL
    RS232_CloseComport(SERIAL_PORT);
#endif
}
// {{{RME choicePoint ':TOP:ClosePort'
INLINE_METHODS int serialCommunicationCapsule_Actor::choicePoint2_ClosePort( const void * rtdata, RTProtocol * rtport )
{
	// {{{USR
	RS232_CloseComport(COM_PORT);
	// }}}USR
}