/*------------------------------------------------------*/ void LoadFromPc(char *p) { void InProg(void); int ReadPar(char *); char q[LINK_LEN],*r,*s,*ss[16]; int i,j,k; long y,z; lib *l; command *c,**cp; switch(*p) { case 'd': Lr=scanLLA(Lr,++p,null); if(!Lr) { j=0; switch(strscan(p,ss,',',16)) { case 2: j=atoi(ss[1]); case 1: if(l=FindLib(LinkAddrStr(ss[0]))) { copylib(l,Lr=makelib()); if(j) for(Lr->xc=Lr->x; --j && Lr->xc->next;) Lr->xc=Lr->xc->next; else Lr->x=Lr->xc=freecoord(Lr->x); Ungetch(REFRESH,0); } else puts_pc("!NOT_FOUND\r\n"); break; default: puts_pc("!SYNTAX\r\n"); break; } } break; case 'l': if(i=LinkAddrStr(++p)) { freelib(Lc); Lc=makelib(); Lc->ltype=LinkAddrType(i); Lc->n=LinkAddrN(i); } else InsertLib(&Lc); break; case 'M': if(sscanf(++p," %d,%04X,%04X,%s",&k,&i,&j,q)==4) { if(Mscan) /* znak, da je editor odprt ! */ if(Mscan->c->maxopt) { /* vrstica in obseg aktivna ? */ if(k) if(--k <= Mscan->c->maxopt) { Mscan->active = k; Refresh(); } break; } r=strchr(q,','); *r++=0; cp=NULL; if(!strcmp(q,"message")) cp=&CP; if(!strcmp(q,"gun")) cp=&GUN; if(!strcmp(q,"meteo")) cp=&METEO; if(!cp) break; /*......................................................................................*/ if(!*cp) new_command(cp); else{ c=*cp; do if(c->chk == j) *cp=c; else c=c->next; while(c != *cp); if((*cp)->chk != j) new_command(cp); } (*cp)->chk=j; c=*cp; s=(char *)c; i = sizeof(command) - sizeof(command *) - sizeof(int); while(i--) { sscanf(r,"%02X",&j); *s++ = j; ++r;++r; } c->chk *= -1; if(cp == &CP) Ungetch(GXM_MESSAGE_ID,0); if(cp == &GUN) Ungetch(GXM_GUN_ID,0); } break; case 'r': if(crest && (sscanf(++p," %ld %ld",&y,&z) == 2)) { add_coord(crest,0,y,z); crest->xc->refp=null; } else DeleteTask(DMRtimeout,RTC_task); break; case 'c': i=j=0; if(Lc) Lc=scanLLA(Lc,++p,eof); break; case 'g': if(Lc && (sscanf(++p," %s %d %d",q,&j,&k) == 3)) { for(i=0; Guns[i].name; ++i) if(!strcmp(Guns[i].name,q)) { Lc->gun=i; Lc->refd=j; Lc->powder=k; } } break; case 'a': if(Lc && (sscanf(++p,"%s %d",q,&j) == 2)) { for(i=0; Guns[Lc->gun].ammo[i]; ++i) if(!strcmp(Guns[Lc->gun].ammo[i],q)) { Lc->ammpcs[i]=j; r=strchr(p,'+'); s=strrchr(p,'+'); if(r) do Lc->ammpcs[i] += 0x1000; while(r++ != s); r=strchr(p,'-'); s=strrchr(p,'-'); if(r) do Lc->ammpcs[i] -= 0x1000; while(r++ != s); } } break; case 'p': if(sscanf(++p,"%d,%d",&i,&j) == 2) if(i<12 && j<4) { xyLCD(i,j); Ungetch(GXM_CURSOR_POS,0); } break; case 'm': LoadHexRec(p,'m',_MenuCode); break; case 'h': LoadHexRec(p,'h',_MenuHead); break; case 't': if(Lc) { ++p; ++p; Lc->txt=addtxt(Lc,p); } else LoadHexRec(p,'t',_TextCode); break; case 'T': if(sscanf(++p," %x %x",&i,&j)==2) { sprintf(q,"%04X\r\n",readTEMP(i,j)); puts_pc(q); } break; case 'f': if(ReadPar(++p)) break; i=strscan(p,ss,' ',16); if(i>=2) { sscanf(ss[0],"%lx",&eebott); sscanf(ss[1],"%lx",&eetop); if(eebott < (long)FLASHTOP) { puts_pc("!ILL_ADDRESS\r\n"); break; } if(eetop > (long)FLASHTOP+0x80000L) { puts_pc("!ILL_ADDRESS\r\n"); break; } if(i==3) { ss[2][8]=0; sprintf(pass,"%-8s",ss[2]); } if(CheckPass(&syspass)) { puts_pc("!NOT_ALLOWED\r\n"); break; } puts_pc("\7\r\nFLASH programming !!!\r\n"); wait(50); InProg(); puts_pc("Done\r\n"); } else puts_pc("!SYNTAX\r\n"); break; case 'b': k=sscanf(++p," %d %d",&i,&j); if(k) if(Baud(CHPC,i)) { if(k==2) Xonoff(j); break; } puts_pc("!SYNTAX\r\n"); break; case 'z': EnterZone(++p); break; case 'G': DeleteTask(ReadPc,RTC_task); Guns=ReadGunData(0,0,0,0,NULL); SetTask(ReadPc,0,RTC_task); break; default: puts_pc("!SYNTAX\r\n"); break; } }
void _importSMILES (OracleEnv &env, const char *table, const char *smiles_col, const char *id_col, const char *file_name) { FileScanner fscanner(file_name); AutoPtr<GZipScanner> gzscanner; Scanner *scanner; int nwritten = 0; QS_DEF(Array<char>, id); QS_DEF(Array<char>, str); env.dbgPrintfTS("importing into table %s\n", table); // detect if input is gzipped byte magic[2]; int pos = fscanner.tell(); fscanner.readCharsFix(2, (char *)magic); fscanner.seek(pos, SEEK_SET); if (magic[0] == 0x1f && magic[1] == 0x8b) { gzscanner.reset(new GZipScanner(fscanner)); scanner = gzscanner.get(); } else scanner = &fscanner; while (!scanner->isEOF()) { id.clear(); scanner->readLine(str, false); BufferScanner strscan(str); strscan.skipSpace(); while (!strscan.isEOF() && !isspace(strscan.readChar())) ; strscan.skipSpace(); if (strscan.lookNext() == '|') { strscan.readChar(); while (!strscan.isEOF() && strscan.readChar() != '|') ; strscan.skipSpace(); } if (!strscan.isEOF() && id_col != 0) strscan.readLine(id, true); OracleStatement statement(env); statement.append("INSERT INTO %s(%s", table, smiles_col); if (id_col != 0) statement.append(", %s", id_col); statement.append(") VALUES(:smiles"); if (id_col != 0) { if (id.size() > 1) statement.append(", :id"); else statement.append(", NULL"); } statement.append(")"); statement.prepare(); str.push(0); statement.bindStringByName(":smiles", str.ptr(), str.size()); if (id.size() > 1) statement.bindStringByName(":id", id.ptr(), id.size()); statement.execute(); nwritten++; if (nwritten % 1000 == 0) { env.dbgPrintfTS("imported %d items, commiting\n", nwritten); OracleStatement::executeSingle(env, "COMMIT"); } } if (nwritten % 1000 != 0) { env.dbgPrintfTS("imported %d items, commiting\n", nwritten); OracleStatement::executeSingle(env, "COMMIT"); } }
/*------------------------------------------------------------------*/ lib *scanLLA(lib *l,char *s, int n) { int i,j=0; char *ss[8]; char p[128]; lib *ll; strncpy(p,s,127); p[127]=0; i=strscan(p,ss,',',8); if(i<3) { strncpy(p,s,127); p[127]=0; i=strscan(p,ss,' ',8); } if(i<3) return(NULL); if(!l) { l=makelib(); copylib(LL,l); } if(!l->ltype) { l->ltype=addtype(TYPE_TG); l->txt=l->ltype->typtxt; auto_ntyp(&l); } if(i>3) j=*ss[3]; if(n || !l->x || j=='+') AddCoord(l,0,0,0); l->xc->x=atof(ss[0]); l->xc->y=atof(ss[1]); l->xc->z=atof(ss[2]); if(coordtx) Utm2Lla(l,l); else { l->xc->x *= M_PI/180.0; l->xc->y *= M_PI/180.0; } l->xc->t=Time; if(i==6) { l->xc->muzzle=atoi(ss[4]); l->xc->refp=atoi(ss[5]); } else { l->xc->muzzle=0; ll=copylib(l,ll=makelib()); LlaToCorr(l,ll,OBP,NULL,EL_AZ_R); l->xc->refp = ScaleAngle(ll->xc->y + maxmils/2,maxmils,MR10,eof)+0.5; freelib(ll); } return(l); }
/*++ Routine Description: GetPortSettings Read in port settings from the system Arguments: DialogHwnd: address of the window ComName: the port we're dealing with Params: where to put the information we're getting Return Value: ULONG: returns error messages --*/ void GetPortSettings( IN HWND DialogHwnd, IN LPCTSTR ComName, IN PPORT_PARAMS Params ) { TCHAR szParms[81]; PTCHAR szCur, szNext; int nIndex; // // read settings in from system // GetProfileString(m_szPorts, ComName, g_szNull, szParms, 81); StripBlanks(szParms); if (lstrlen(szParms) == 0) { StringCchCopy(szParms, ARRAYSIZE(szParms), m_szDefParams); WriteProfileString(m_szPorts, ComName, szParms); } szCur = szParms; // // baud rate // szNext = strscan(szCur, m_szComma); if (*szNext) { // // If we found a comma, terminate // *szNext++ = 0; } // // current Baud Rate selection // if (*szCur) { Params->PortSettings.BaudRate = myatoi(szCur); } else { // // must not have been written, use default // Params->PortSettings.BaudRate = m_nBaudRates[DEF_BAUD]; } // // set the current value in the dialog sheet // nIndex = (int)SendDlgItemMessage(DialogHwnd, PP_PORT_BAUDRATE, CB_FINDSTRING, (WPARAM)-1, (LPARAM)szCur); nIndex = (nIndex == CB_ERR) ? 0 : nIndex; SendDlgItemMessage(DialogHwnd, PP_PORT_BAUDRATE, CB_SETCURSEL, nIndex, 0L); szCur = szNext; // // parity // szNext = strscan(szCur, m_szComma); if (*szNext) { *szNext++ = 0; } StripBlanks(szCur); switch(*szCur) { case TEXT('o'): nIndex = PAR_ODD; break; case TEXT('e'): nIndex = PAR_EVEN; break; case TEXT('n'): nIndex = PAR_NONE; break; case TEXT('m'): nIndex = PAR_MARK; break; case TEXT('s'): nIndex = PAR_SPACE; break; default: nIndex = DEF_PARITY; break; } Params->PortSettings.Parity = nIndex; SendDlgItemMessage(DialogHwnd, PP_PORT_PARITY, CB_SETCURSEL, nIndex, 0L); szCur = szNext; // // word length: 4 - 8 // szNext = strscan(szCur, m_szComma); if (*szNext) { *szNext++ = 0; } StripBlanks(szCur); nIndex = *szCur - TEXT('4'); if (nIndex < 0 || nIndex > 4) { nIndex = DEF_WORD; } Params->PortSettings.DataBits = nIndex; SendDlgItemMessage(DialogHwnd, PP_PORT_DATABITS, CB_SETCURSEL, nIndex, 0L); szCur = szNext; // // stop bits // szNext = strscan(szCur, m_szComma); if (*szNext) { *szNext++ = 0; } StripBlanks(szCur); if (!lstrcmp(szCur, TEXT("1"))) { nIndex = STOP_1; } else if(!lstrcmp(szCur, TEXT("1.5"))) { nIndex = STOP_15; } else if(!lstrcmp(szCur, TEXT("2"))) { nIndex = STOP_2; } else { nIndex = DEF_STOP; } SendDlgItemMessage(DialogHwnd, PP_PORT_STOPBITS, CB_SETCURSEL, nIndex, 0L); Params->PortSettings.StopBits = nIndex; szCur = szNext; // // handshaking: Hardware, xon/xoff, or none // szNext = strscan(szCur, m_szComma); if (*szNext) { *szNext++ = 0; } StripBlanks(szCur); if (*szCur == TEXT('p')) { nIndex = FLOW_HARD; } else if (*szCur == TEXT('x')) { nIndex = FLOW_XON; } else { nIndex = FLOW_NONE; } SendDlgItemMessage(DialogHwnd, PP_PORT_FLOWCTL, CB_SETCURSEL, nIndex, 0L); Params->PortSettings.FlowControl = nIndex; } /* GetPortSettings */