C_RESULT shutdown_com_server(void) { com_close(&clt); com_close(&srv); com_shutdown(); return C_OK; }
int com_open(int comport, long speed, int data_bit, unsigned char parity, unsigned char stop_bit) { int x; disable(); if (modem_open) com_close(); modem_port=comport; switch(modem_port) { case 1:modem_base=0x3F8; modem_irq=4; modem_vect=0x0C; break; case 2:modem_base=0x2F8; modem_irq=3; modem_vect=0x0B; break; case 3:modem_base=0x3E8; modem_irq=4; modem_vect=0x0B; break; case 4:modem_base=0x2E8; modem_irq=3; modem_vect=0x0C; break; case 5:break; default:modem_base=0x3F8; modem_irq=4; modem_vect=0x0C; break; } outp(modem_base+1,0x00); if (inp(modem_base+1)!=0) { enable(); return(0); } /* Set up the Interrupt Info */ old_modem_ier=inp(modem_base+1); outp(modem_base+1,0x01); old_modem_isr=(void (INTERRUPT FAR *)(void))getvect(modem_vect); setvect(modem_vect,modem_isr); if (modem_rts_cts) { outp(modem_base+4,0x0B); } else { outp(modem_base+4,0x09); } old_modem_imr=inp(I8088_IMR); outp(I8088_IMR,old_modem_imr & ((1 << modem_irq) ^ 0x00FF)); for (x=1; x<=5; x++) inp(modem_base+x); modem_open=1; modem_buffer_count=0; modem_buffer_head=0; modem_buffer_tail=0; com_speed(speed); com_data_bits((unsigned char)data_bit); com_parity(parity); com_stop_bits(stop_bit); enable(); return(1); }
/* Abort after error */ void abort_test(void) { int err; printf("\nAborting com port test\n"); err = com_close(); if (err!=OK) printf("Error on close\n"); exit(); }
STATUS_E download_images(const struct image *download_agent, const struct image *download_agent_TCM, const struct image *nor_flash_table, const struct image *nand_flash_table, const struct image *download_EPP, const struct image *bootLoader, const struct image *extBootLoader, const struct image *dspBootLoader, const struct image *rom, const struct image *secondRom, const struct image *dspRom, const struct image *demand_paging_rom, struct image *linux_images, const struct ExternalMemorySetting *externalMemorySetting, unsigned int num_linux_images, unsigned int bmt_address, int isUSB, int isNFB) { COM_HANDLE com_handle = INVALID_COM_HANDLE; STATUS_E status; if(isUSB){ int retry = 0; while(1) { Sleep(100); //if (com_open(&com_handle, 19200) == COM_STATUS_DONE) if (com_open(&com_handle, 115200) == COM_STATUS_DONE) { log_output("handle (%d)\n", com_handle); log_feedback("SUCCESS:handle port (%d)\n",com_handle); break; }else{ log_output("faile handle (%d)\n", com_handle); log_feedback("FAIL:handle port (%d)\n",com_handle); com_close(&com_handle); if (++retry > 10) return S_COM_PORT_OPEN_FAIL; } } }else{ if (com_open(&com_handle, 115200) != COM_STATUS_DONE) { log_output("Failed to open the communication port\n"); return S_COM_PORT_OPEN_FAIL; } } status = bootrom_stage(com_handle, download_agent,download_agent_TCM, download_EPP, externalMemorySetting, isUSB, isNFB); if (status != S_DONE) { log_output("Download failed in BootROM stage: error=%u\n", status); //com_close(&com_handle); return status; } status = da_stage(com_handle, nor_flash_table, nand_flash_table, bootLoader,extBootLoader,dspBootLoader, rom, secondRom, dspRom, demand_paging_rom, linux_images, num_linux_images, isUSB, isNFB, bmt_address); if (status != S_DONE) { log_output("Download failed in DA stage: error=%u\n", status); //com_close(&com_handle); //Sleep(5000); return status; } log_feedback("FINISHED UPDATE"); log_output("FINISHED UPDATAE!\n"); if (com_close(&com_handle) != COM_STATUS_DONE) { log_output("Failed to close the communication port\n"); //Sleep(5000); } //Sleep(5000); return S_DONE; }
int main(int argc,char* argv[]) { com_config_t cfg; vp_com_connection_t conn; printf("---------- Network Adapter Inquiry ----------\n"); com_networkAdapterLookUp(COM_BLUETOOTH,adapterinquiry_df); printf("---------------------------------------------\n"); cfg.connection = COM_BLUETOOTH; cfg.localAdapterName = DEVICENAME; cfg.localIpAddress = LOCALHOST; cfg.localIpSubmask = "255.255.255.0"; printf("--------------- INITIALISATION --------------\n"); if(FAILED(com_init(&cfg))) { printf("Failed to init\n"); com_shutdown(); return -1; } /* printf("----------- Remote Device Inquiry -----------\n"); com_inquire(deviceinquiry,60000); printf("---------------------------------------------\n"); */ printf("---------- Tentative de connection ----------\n"); com_strToAddress(BTADDR_SERVER,&conn.address); com_passKey("1234"); if(FAILED(com_connect(&conn,1))) { printf("Failed to connect\n"); com_shutdown(); return -1; } printf("Connected to BTT\n"); printf("---------- BNEP Connection ----------\n"); {// Test d'execution bnep com_socket_t socket; Read read; socket.socket = VP_COM_CLIENT; socket.protocol = COM_BNEP; socket.serverHost = SERVERHOST; socket.port = BTADDR_PORT; if(SUCCEED(com_open(&socket,&read,0))) { char buffer[10]; int r = 10; printf("Connection BNEP succeeded\n"); if(SUCCEED(read((void*)&socket,buffer,&r))) printf("Read succeed\n"); printf("socket closed\n"); com_close(&socket); } } sleep(1); printf("---------- RFCOMM Connection ----------\n"); {// Test d'execution rfcomm com_socket_t socket; Write write; socket.socket = VP_COM_CLIENT; socket.protocol = COM_RFCOMM; socket.scn = BTADDR_SCN; if(SUCCEED(com_open(&socket,0,&write))) { char buffer[10]; int r = 10; printf("Connection RFCOMM succeeded\n"); if(SUCCEED(write((void*)&socket,buffer,&r))) printf("Write succeed\n"); printf("socket closed\n"); com_close(&socket); } } sleep(1); printf("Deconnection\n"); com_disconnect(); printf("End of program\n"); com_shutdown(); return 0; }
void main() { int e_flag; /* event flag */ int rc; /* function return code */ char buffer[BUFLEN+2]; /* general buffer */ char prompt[BUFLEN+2]; /* prompt buffer */ int prlen; int length; long tstart; /* open com port */ rc = com_open( (int*) &e_flag, 1200); if ( rc != 0) { printf("\nOPEN failed!\n"); printf("error code = %d\n",rc); abort_test(); } /* setup prompt string */ strcpy(prompt, "\r\nEnter string: "); prlen = strlen(prompt); /* prompt and read until "quit" is typed */ buffer[0] = NULCH; while (strcmp(buffer,"quit\r\n") != 0) { /* display the prompt */ e_flag = 0; rc = com_write((char*) prompt, (int*) &prlen); if (rc != 0) { printf("\nerror displaying prompt!\n"); printf("error code = %d\n",rc); abort_test(); } /* loop until output is done */ tstart = time(NULL); while (e_flag == 0) { if ((time(NULL) - tstart) > WR_TIME_LIMIT) { printf("\ntimeout on prompt\n"); printf("event flag not set\n"); exit(); } } /* read a string */ length = BUFLEN-1; e_flag = 0; rc = com_read((char*) buffer, (int*) &length); if (rc != 0) { printf("\nerror reading string!\n"); printf("error code = %d\n",rc); abort_test(); } /* loop until input is done */ tstart = time(NULL); while (e_flag == 0) { if ((time(NULL) - tstart) > RD_TIME_LIMIT) { printf("\ntimeout on input\n"); printf("event flag not set\n"); abort_test(); } } /* display the input string */ e_flag = 0; if (buffer[length-1] == '\n') { buffer[length-1] = NULCH; length--; } strcat(buffer,"\r\n"); length = length + 2; printf("%s",buffer); rc = com_write((char*) buffer, (int*) &length); if (rc != 0) { printf("\nerror displaying string!\n"); printf("error code = %d\n",rc); abort_test(); } /* loop until output is done */ tstart = time(NULL); while (e_flag == 0) { if ((time(NULL) - tstart) > WR_TIME_LIMIT) { printf("\ntimeout on output\n"); printf("event flag not set\n"); abort_test(); } } } /* end of while loop */ /* print final message */ e_flag = 0; length = 29; printf("\nEnd of Com Driver IO Test\n"); rc = com_write((char*) "\r\nEnd of Com Driver IO Test\r\n", (int*) &length); if (rc != 0) { printf("\nWRITE error on final message!\n"); printf("error code = %d\n",rc); abort_test(); } /* loop until output is done */ tstart = time(NULL); while (e_flag == 0) { if ((time(NULL) - tstart) > WR_TIME_LIMIT) { printf("\ntimeout on final message\n"); printf("event flag not set\n"); abort_test(); } } /* close the com port */ rc = com_close(); if ( rc != 0) { printf("\nCLOSE failed!\n"); printf("error code = %d\n",rc); exit(); } printf("Test completed successfully!\n"); }
void main(void) { int e_flag; /* event flag */ int ix; /* loop index */ int rc; /* function return code */ char buffer[BUFLEN]; /* output buffer */ int length; long tstart; /* open com port */ rc = com_open( (int *) &e_flag, 1200); if ( rc != 0) { printf("\nOPEN failed!\n"); printf("error code = %d\n",rc); abort_test(); } /* fill buffer with Xs */ for (ix=0; ix<BUFLEN; ix++) buffer[ix] = 'X'; /* insert test string */ strcpy(buffer,"This is a test of com driver output "); strcat(buffer,"abcdefghijklmnopqrstuvwxyz 0123456789\012\015"); length = strlen(buffer); /* output test string the specified number of times */ for (ix=1; ix<=REPEAT_COUNT; ix++) { e_flag = 0; rc = com_write((char *) buffer, (int *) &length); if (rc != 0) { printf("\nWRITE error!\n"); printf("error code = %d\n",rc); abort_test(); } /* loop until output is done */ tstart = time(NULL); while (e_flag == 0) { if ((time(NULL) - tstart) > TIME_LIMIT) { printf("\nTIMEOUT: event flag not set\n"); abort_test(); } } } /* output final message */ e_flag = 0; length = 31; rc = com_write((char *) "End of Com Driver Output Test\012\015", (int *) &length); if (rc != 0) { printf("\nWRITE error on final message!\n"); printf("error code = %d\n",rc); abort_test(); } /* loop until output is done */ tstart = time(NULL); while (e_flag == 0) { if ((time(NULL) - tstart) > TIME_LIMIT) { printf("\nTIMEOUT: event flag not set\n"); abort_test(); } } /* close the com port */ rc = com_close(); if ( rc != 0) { printf("\nCLOSE failed!\n"); printf("error code = %d\n",rc); exit(); } printf("Test completed successfully!\n"); }
/** * Main, startup */ int main(int argc, char *argv[]) { // Filename of the HEX File const char * hexfile = NULL; // 1 if verify, 2 if programm char verify = 0; // Serial device const char * device = "/dev/ttyS0"; // Baudrate int baud = 4800; int baudid = -1; // if crc is supported (not supportet if 2) int crc_on; // The path to the binary (for finding devices.txt) readlink("/proc/self/exe", devices_file_p, 255); // symlink to this binary chp = strrchr (devices_file_p,'/'); // get the last path separator if (chp) strcpy (chp+1,DEVICES_FILE); // copy the device filename after the path separator // print header printf("\n"); printf("=================================================\n"); printf("| BOOTLOADER, Target: V2.1 |\n"); printf("=================================================\n"); // Parsing / checking parameter int i; int type = 0; for(i = 1; i < argc; i++) { if(*argv[i] == '-') { type = argv[i][1]; } else { switch(type) { case 'd': device = argv[i]; break; case 'b': baud = atoi(argv[i]); break; case 'v': verify = 1; hexfile = argv[i]; break; case 'p': verify = 2; hexfile = argv[i]; break; default: printf("Wrong parameter!\n"); usage(); } type = 0; } } if(hexfile == NULL) { printf("No hexfile specified!\n"); usage(); } if(verify == 0) { printf("No Verify / Programm specified!\n"); usage(); } // Checking baudrate for(i = 0; i < BAUD_CNT; i++) { if (baud_value[i] == baud) { baudid = i; break; } } if(baudid == -1) { printf("Unknown baudrate (%i)!\n", baud); usage(); } printf("Device : %s\n", device); printf("Baudrate : %i\n", baud); printf("%s: %s\n", (verify == 1 ? "Verify " : "Program "), hexfile); printf("-------------------------------------------------\n"); if(!com_open(device, baud_const[baudid])) { printf("Open com port failed!\n"); exit(2); } connect_device(); crc_on = check_crc(); read_info(); /*if(read_info()) { } else { printf("Reading device information failed!\n"); }*/ if(crc_on != 2) { crc_on = check_crc(); switch(crc_on) { case 2: printf("No CRC support.\n"); break; case 0: printf("CRC enabled and OK.\n"); break; case 3: printf("CRC check failed!\n"); break; default: printf("Checking CRC Error (%i)!\n", crc_on); break; } } else { printf("No CRC support.\n"); } flash(verify==1, hexfile); if( crc_on != 2 ) { if( check_crc() ) printf( "CRC-Error !\n"); else printf("CRC: o.k.\n"); } #ifdef SHOW_TIME_MS //time @ ms printf("Elapsed time: %d s\n", elapsed_msecs (&t_start)); #endif #ifdef SHOW_TIME_S printf("Elapsed time: %.3f seconds\n", elapsed_secs (&t_start)); #endif printf("...starting application\n\n"); sendcommand(START);//start application sendcommand(START); com_close();//close opened com port return 0; }
void Cleanup(){ trm_close(); com_close(); DeleteAllQueues(); DeleteAllTheThings(); }