본문 바로가기

프로젝트/휴대폰을 BarCode Reader 로 사용하여 C# DB에서 이용하기

아두이노 SD카드에 DaraBase구축

간단한 데이타베이스를 구축 할 것이다.

 

레코드는 다음과 같이 구성 (구조체)

struct Record  // 레코드구조체

     String           barCode; 
     String           productName; 
}; 

필드명 변수 내용
barCode String 바코드를 저장
productName String 제품명을 저장

간단이 레코드 추가 검색 기능만 일단 구현하고

삭제기능은 삭제한 곳의 빈공간 처리가 필요하여 추후에 추가 할 것이다..

 

SD카드 라이브러리에서 String을 파일에 쓰기에는 println함수가 있지만  읽기에는 없다. 

그래서 readLine이라는 함수를 따로 만들었다.


String readLine()
{
          char buff[50];
          int idx=0;
  
          while(true)
          {
                 byte b,b2;


                 b=dbFile.read();        
                if( b == 0x0d )
                {
                         b2=  dbFile.read();          
                         if( b2 == 0x0a )
                         {             
                                  buff[idx]= 0;
                                  return( String( buff ) );
                           }
                       buff[idx++] = b;
                       buff[idx++] = b2;
                     }
                    else buff[idx++] =b;        
              }
}

 


void addRecord( String _barCode, String _productName )
{     
    dbFile = SD.open(dbFileName,FILE_WRITE); 
    dbFile.println( _barCode );
    dbFile.println( _productName );    
    dbFile.close();
           
}


Record findRecord( String  _barCode)
{
  Record rec;  
  dbFile = SD.open(dbFileName);  
  while( dbFile.available() )
  {    
      if( _barCode == readLine() )
        {
          rec.barCode=_barCode;
          rec.productName=readLine();
          dbFile.close();
          return( rec );
        }
      readLine();
   }
  dbFile.close(); 
  rec.barCode="-1"; 
  return( rec); 
} // func