示例#1
0
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;
    }
}
示例#2
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();
 
	}

			
		 }}