CSeqDBIdxFile::CSeqDBIdxFile(CSeqDBAtlas & atlas, const string & dbname, char prot_nucl, CSeqDBLockHold & locked) : CSeqDBExtFile(atlas, dbname + ".-in", prot_nucl, locked), m_NumOIDs (0), m_VolLen (0), m_MaxLen (0), m_MinLen (0), m_HdrLease (atlas), m_SeqLease (atlas), m_AmbLease (atlas), m_OffHdr (0), m_EndHdr (0), m_OffSeq (0), m_EndSeq (0), m_OffAmb (0), m_EndAmb (0) { Verify(); // Input validation if (dbname.empty()) { NCBI_THROW(CSeqDBException, eArgErr, "Error: dbname should not be an empty string."); } if ((prot_nucl != 'p') && (prot_nucl != 'n')) { NCBI_THROW(CSeqDBException, eArgErr, "Error: Invalid sequence type requested."); } TIndx offset = 0; Uint4 f_format_version = 0; Uint4 f_db_seqtype = 0; CSeqDBMemLease lease (m_Atlas); offset = x_ReadSwapped(lease, offset, & f_format_version, locked); TIndx off1(0), off2(0), off3(0), offend(0); try { if (f_format_version != 4) { NCBI_THROW(CSeqDBException, eFileErr, "Error: Not a valid version 4 database."); } offset = x_ReadSwapped(lease, offset, & f_db_seqtype, locked); offset = x_ReadSwapped(lease, offset, & m_Title, locked); offset = x_ReadSwapped(lease, offset, & m_Date, locked); offset = x_ReadSwapped(lease, offset, & m_NumOIDs, locked); offset = x_ReadSwapped(lease, offset, & m_VolLen, locked); offset = x_ReadSwapped(lease, offset, & m_MaxLen, locked); TIndx region_bytes = 4 * (m_NumOIDs + 1); off1 = offset; off2 = off1 + region_bytes; off3 = off2 + region_bytes; offend = off3 + region_bytes; } catch(...) { m_Atlas.RetRegion(lease); throw; } m_Atlas.RetRegion(lease); char db_seqtype = ((f_db_seqtype == 1) ? 'p' : 'n'); if (db_seqtype != x_GetSeqType()) { NCBI_THROW(CSeqDBException, eFileErr, "Error: requested sequence type does not match DB."); } m_OffHdr = off1; m_EndHdr = off2; m_OffSeq = off2; m_EndSeq = off3; if (db_seqtype == 'n') { m_OffAmb = off3; m_EndAmb = offend; } else { m_OffAmb = m_EndAmb = 0; } }
int main(void) { //int flag; TWI_init_master(); _delay_ms(100); //sei(); //_delay_ms(1000); InitLCD(0); _delay_ms(50); LCDClear(); _delay_ms(10); uart_0_ini(); uart_1_ini(); Init_LED(); sei(); _delay_ms(50); LCD(0,0,"VIT"); _delay_ms(500); LCDClear(); _delay_ms(10); LCD(0,0,"SURACSHA"); _delay_ms(100); LCDClear(); _delay_ms(100); while (1) { LCDvar(0,0,Y_Data,5); if (Y_Data > 2000 || Y_Data < -2000 ||X_Data > 2000 || X_Data < -2000||Z_Data > 2000 || Z_Data < -2000) { _delay_ms(50); LCDClear(); _delay_ms(70); LCD(0,1,"accident Happned"); //flag=1; glow3(); glow4(); LCDGotoXY(0,0); LCDWriteString("Waiting for GPS"); while(valid!='A'); LCDClear(); _delay_ms(100); LCDGotoXY(0,0); LCDWriteString("Fix Available"); _delay_ms(2000); LCDClear(); _delay_ms(100); sendlocation("9503139115"); //break; } else {_delay_ms(70); LCDGotoXY(0,1); LCDWriteString("Normal"); glow2(); glow3(); _delay_ms(50); off2(); off3(); } }}