애플리케이션은 동적으로 테이블의 존재 여부를 파악하여 테이블의 생성 여부를 결정해야 합니다. 이런 동작을 하기 위한 로직엔 두 개가 있습니다. 1. sqlite 테이블이 존재하면 건너뛴다 (삭제 후 생성되지 않음)2. sqlite 테이블이 존재하지 않으면 생성한다 (새롭게 생성됨) 1번 경우 예제1db.execSQL("create table if not exists month (NumericalValue integer);");cs "if not exists"란 명령어로 테이블이 존재하면 생성 과정을 건너뛰게 하였습니다. 예를 들어, 이미 존재하는 테이블일 경우엔 기존 테이블이 계속해서 사용됩니다. 2번 경우 예제12345678910111213141516SQLiteDatabase db = openOrCre..
컴파일러는 낮은 레벨에서 C# sealed 클래스를 micro-optimization 할 수 있습니다. 컴파일 타임에 C# sealed 클래스에 함수를 호출하면 callvirt IL 명령어 대신 IL 명령어를 사용합니다. C# sealed 클래스의 함수는 오버라이드 되지 않음.가상 함수 테이블 검사 과정을 생략.가상 함수 테이블은 조회 시간이 상대적으로 짦음.callvirt 보다 속도에서 유리함. 이렇기에 성능이 조금 좋아집니다. 최적화 중이라면 적용하세요. 즉, 다형성을 잃어버린 클래스라 선언했기에 컴파일러는 여러 검사 과정을 생략합니다. (확장되지 않는 클래스) 예를 들어, non-sealed 클래스에 makeNoise()란 함수가 있을 때, 이 함수의 재정의 여부는 알 수가 없습니다. 함수 재정의 ..
랩뷰(LabView)와 실시간 모니터링 융합, 측정과 산업 시스템 설계 이전 글 - LVDT와 랩뷰(LabView)를 응용한 실시간 모니터링 [링크] 8. 실험 결과와 분석 □ Thickness filtering 실험 ◯ 그림 9(a) : 흰색 줄은 표준 두께, 빨간점은 실제로 측정 제품의 두께 (랩뷰(LabView)) - 실시간 모니터링, 기준인 1cm는 오차 범위 0.05cm를 더한 값 ◯ 제품마다 각각의 서로 다른 기준을 가지고 있으며 기존에 많은 필터링 시나리오가 존재 - 각 시나리오에 대해서 필요한 데이터를 얻기 위해 1,000개의 세트에 대한 데이터 분석 ◯ 그림 10(a) : 필터링된 데이터의 길이 ◯ 그림 10(b) : 수집된 데이터의 통계 분석 □ Ground vibration 실험 ◯ ..
리눅스 시리얼 통신, 연결 확인 (세상에서 제일 간단한 방법) Linux 계열 어디에서나 간단하게 테스트해볼 수 있는 방법입니다. 두 대의 장비를 놓고 양쪽 모두에서 터미널을 여세요. 수신 1#cat /dev/ttyUSB0cs cat을 사용해 수신 대기 상태로 설정합니다. 송신 1#echo "bla~ bla~" > /dev/ttyUSB0cs echo를 사용해 데이터를 전송합니다. 정말 간단합니다. 관련 글2018/05/27 - socat 리눅스 가상 시리얼 포트(컴포트) 사용법 (RS232 테스트)2017/03/04 - 리눅스 시리얼 통신, 연결 확인 (세상에서 제일 간단한 방법)2017/02/17 - 시리얼 통신 포트 에러, 타임아웃, 속도 저하 (USB to Serial) ⓒ written by vi..