본문 바로가기
반응형

전체 글358

[Android] Application 사용 가능 기간 구현 안드로이드 프로젝트를 진행하다 보니 업체 측에서 Application을 사용할 수 있는 기간을 정할 수 있게 해달라는 요청이 들어왔습니다. 즉 관리자가 해당 기간을 설정하면 사용자는 Application을 그 기간 이후에는 사용하지 못하도록 하는 기능입니다. 어플 구현자체는 간단했습니다. Application의 현재 시간을 불러오고 그 시간을 관리자가 설정한 시간과 비교하여 기간이 지나지 않았으면 사용 가능하고 기간이 지났으면 Application 자체를 finish() 해주면 됩니다. 위 예제를 보면 Application은 2021년 9월 30일 13시 이후에는 아무리 실행을 하더라도 바로 종료되면서 "어플 사용기한이 만료되었습니다" 라는 문구가 표시됩니다. 현재 글작성일 기준으로는 아직 한 달이 조금.. 2021. 8. 18.
[Android] Bluetooth Le Auto Connection 구현 이번에 회사 프로젝트 진행 중 Android App과 TI사의 CC2541 칩과의 Bluetooth를 Connection 하여 통신하는 프로그램을 만드는 데 문제는 일반 Connection이 아닌 Application에 의한 Auto Connection이 필요했습니다. 또한 Auto Connection 자체가 App과 CC2541가 가까워지면 Connection 되고 멀어지면 Disconnection 되어야 한다는 조건이 있었으므로 Application 자체는 스마트폰상에서 꺼지지 않고 Auto Connection을 해야 했습니다. 1. 준비사항 - CC2541 프로그램은 Peripheral을 사용하여 Disconnect 상태에서는 항상 Advertising을 통해 연결을 대기합니다. - Applicat.. 2021. 8. 18.
[Android] Android Bluetooth Scan 안되는 문제 해결 Android를 사용하여 Bluetooth Le Application을 개발할 때 Connection을 위한 Device Scan이 필요하고 이부분을 구현하였으나 정작 Scan list를 불러오지 못하는 경우가 있습니다. 이 부분은 예전에는 문제없었지만 구글의 바뀐 정책으로 인해 몇 가지 추가를 해주어야 합니다. 일단 기존에는 Bluetooth Scan 및 Connection을 위해서는 Manifest에 두 가지 permission만 선언하면 되었습니다. 하지만 구글의 바뀐 정책은 추가적으로 한가지 permission을 더 필요로 합니다. Manifest에 permission 추가 뒤, MainActivity 부분에 Bluetooth에 필요한 permission을 사용자에게 요청하는 부분을 추가해 주어야.. 2021. 8. 18.
[임베디드] Timer를 이용해 1시간 이상 측정하기 서버나 어플 같은 경우는 비교적 시간을 계산하는 게 굉장히 간단합니다. 왜냐하면 자체적인 Date 함수를 지원하기 때문에 프로그래머는 이 함수를 이용하면 현재시간 및 내가 원하는 시간대와의 시간차등을 손쉽게 구할 수 있습니다. 하지만 마이컴을 사용하는 임베디드 시스템에서는 시간 측정에 대한 부분은 제한적이기 때문에 몇 분 정도의 시간은 Timer로 구현이 쉽지만 시간 단위가 1시간 이상을 훌쩍 넘어갔을 시에는 어떻게 측정해야 하는지 간단하게 설명하도록 하겠습니다. 1) 문제점 고민 먼저 임베디드 시스템에서 Timer는 시스템상의 Clock을 이용해 시간을 측정할 수 있는 하나의 도구라고 생각하면 됩니다. 예를들어 시스템상의 Timer에서는 1ms마다 숫자를 하나식 세고 있다고 가정하겠습니다. 우리가 1분.. 2021. 8. 17.
[알고리즘] 헥사데이터 문자열 변환 송수신 (문자열에 0x00값 포함) 서버를 개발하다 보면 대부분의 프로그램 구조는 송수신을 처리하는 게 대부분이라고 할 수 있습니다 단연 서버뿐만 아니라 여러 가지 임베디드나 어플 등 모든 통신에서 데이터를 통신할 때 문자열 ASCII로만 송수신을 한다면 크게 문제사항은 없을 것이나 예를 들어 데이터 값에 0x00 값이 들어있는 경우, 이런 경우에는 데이터 전송 시에 0x00 뒤쪽 데이터는 다 날아가는 등의 문제를 겪어보셨을 거예요 A = [ 0x01 0x02 0x00 0x03 0x04 0x05 ] 위와 같은 데이터가 있고 통신을 했을 때 1byte식 직접 전송하고 직접 받는다면 크게 문제는 없지만 예를 들어서 Mysql같은 sql구문에 넣어야 하는 경우 등을 생각해보면 문제는 달라집니다 1) 문제점 고민 자 어떠한 문제가 생기느냐 하면 .. 2021. 3. 12.
[임베디드] RS232 TX Interrupt란? 임베디드 시스템을 개발하다 보면 통신 부분에서 RS232는 빠질 수 없는 부분이죠 그러나 대부분 RS232 RX Interrup에 대해서는 많이 들어보기도 했고 많이 사용하지만 TX Interrupt라는 것에 대해서는 내용자체도 많이 없어서 많이들 혼동하는 것 같습니다 오늘은 이 Tx Interrup라는 기능에 대해서 정리하고자 합니다 1) TX Interrup란 무엇인가? TX Interrupt는 데이터를 송신할 때 사용되며 어떠한 상황에서 인터럽트가 걸리는 것일까?? 바로 송신 버퍼가 비어있을때 즉 Tx 버퍼와 Rx 버퍼 두 개가 존재하고 이 중에서 Tx버퍼에 아무런 데이터도 들어있지 않은 상황을 말합니다 이부분을 조금 더 상세하게 풀어보면 마이컴단에서 플래그 레지스터를 가지고 설명해 볼게요 RS23.. 2021. 3. 12.
반응형