주간 진행 보고서 (4월 3주차)

2019.04.16


데이터 관리 화면 설계를 시작했다.

기본적으로 레이아웃 구성과 화면에 들어갈 아이콘 등 UI 초안을 만들고 그에 맞춰 기본적인 xml을 구성했다.

오늘은 저장된 데이터 세트의 수를 보여주는 플레이트, (데이터 검색, 전체 데이터 보기, 데이터 분석) 아이콘을 구성하였다.

추가로, 2차 계획 설계 기간 이후로 작품의 이름을 교체했기 때문에 그에 맞춰 앱 이름을 ‘MRM 컨트롤러’에서 옴니 카 컨트롤러로 변경하였다.

4월 15일에 2차 계획 발표를 마무리하고 오늘 처음으로 3차 계획 기간에 대한 작업을 시작했다.

이번 2차 계획 발표 때 메카넘 휠에서 옴니 휠로 변경한 것, 와이파이 통신 방식에 대한 교수님의 불만사항이 있었고 이를 수정할 지, 그대로 유지할 지 다음 계획 발표 전까지 생각해봐야 할 것 같다.

우선 옴니 휠을 사용하는 이유를 더 확실하게 해야 할 필요가 있을 것 같고 와이파이 통신 방식은 제품 제작이 완료되는대로 바로 확인해서 적용하도록 해야겠다.



2019.04.17


데이터 관리 화면의 전체 디자인을 마무리했다.

기존에 그린 초안대로 똑같이 xml에 반영하였고 버튼 기능 테스트까지 마무리하였다.

디자인 구현 이후에는 데이터베이스에 저장된 정보들을 보여줄 리스트뷰를 하단 부분에 추가하고 커스텀 리스트뷰 형식으로 소스코드를 작성했다.

내일부터는 데이터 관리 화면에서 버튼을 클릭했을 때 나올 화면들 그리고 SQLiteDatabase를 이용하여 설정 값들을 저장하는 기능들을 구현할 예정이다.

개발하면서 3가지 문제를 발견하고 자료를 찾아 해결하였다.

첫 번째는 기본 View를 RelativeLayout 위에 배치하는 중에 Not a sibling in same layout이라는 에러가 발생하는 문제였다.

이 문제는 RelativeLayout 내에 LinearLayout을 하나 더 배치한 이후 그 안에 배치함으로써 해결하였고, 두 번째는 커스텀 리스트뷰를 구성하는 문제였다.

커스텀 리스트뷰를 구현하는데 각각의 플레이트에 대한 크기를 마음대로 설정하기가 어려웠다.

처음에는 RelativeLayout을 가장 큰 레이아웃으로 보고 그 자체의 설정값만을 변경했었는데 가장 큰 레이아웃 안에 또 다른 레이아웃을 배치하고 그 크기를 지정해줘야 전체적으로 변화가 생긴다는 것을 확인하였다.

또, 리스트뷰를 클릭할 때 나오는 기본 색상, 리스트뷰 내 각 플레이트별 구분선을 없앨 필요성을 느꼈다.

이는 xml에서 android:scrollbars="none", android:divider="@color/white", android:dividerHeight="0dp"로 해결하였다.



2019.04.18


오늘은 데이터 관리 화면의 전체 데이터 확인 클래스를 작성했다.

해당 화면에는 데이터베이스로부터 불러올 내용들을 보여주도록 할 예정이고 순서, 날짜 및 시간, 온도, 습도, 미세먼지 농도, 위치 그리고 장애물 확인 정보에 대한 것들이 기록될 것이다.

추가적으로, 두 번째 커스텀 리스트뷰를 구현하여 많은 데이터들을 한번에 확인할 수 있도록 하였다.

마지막으로, 기존 아이피 정보 변경 다이얼로그의 크기를 수정하고 카메라 IP를 입력할 수 있는 EditText를 하나 추가하였다.

전체 데이터 확인 화면을 구현하면서 수직과 수평으로 동시에 화면의 크기를 뛰어넘는 정보들을 출력하기 때문에 스크롤뷰가 필요했다.

초반에는 수직, 수평을 동시에 어떻게 움직일 지 복잡했는데 막상 해보니 HorizontalScrollView를 이용해서 수평으로 분류 탭을 좌, 우로 움직이고 ListView 내에서는 위, 아래로 수직 이동이 되서 쉽게 해결할 수 있었다.

다만 대각선으로의 이동은 어려워서 이 정도로만 하고 끝내 놓는 것으로 하려고 한다.

추가적으로, 어제 구현한 데이터 관리 부분 back키와 리스트뷰 각 라인의 클릭 버튼 터치 영역이 너무 좁아서 이미지뷰 자체를 LinearLayout에 넣고 그 뷰를 클릭하도록 설정하여 터치 영역을 넓혔다.



2019.04.19


전체 데이터 확인 화면의 상단 Back 버튼과 제목을 RelativeLayout 위에 고정하였다.

기존에 Horizontal ScrollView를 이용하여 오른쪽으로 자동 스크롤이 되게 할 때 LinearLayout 위에 상단바까지 포함시키다 보니 Gravity로 가운데 정렬을 하게 되면 뒤로가기 버튼과 상단 제목이 여기저기 움직였었다.

이를 방지하기 위해서 RelativeLayout 위에 새로운 LinearLayout으로 배치하였고, 두 번째로는 데이터 확인 다이얼로그를 구성하였다.

마지막으로, 라즈베리파이 실험 전 아두이노를 이용하여 기존의 센서들과 휠의 움직임을 테스트하기 위한 소프트웨어 구동 방식 연구를 도왔다.

데이터 확인 다이얼로그를 구성하는 방식은 기존의 아이피 정보 변경 다이얼로그와 동일하게 적용하였다.

날짜 및 시간, 온도, 습도, 미세먼지 농도, 위치, 장애물 여부 정보를 더 자세하게 볼 수 있는 커스텀 다이얼로그를 구성하였고 각 데이터 세트별로 확인할 수 있는 기능을 추가하였다.

추후 데이터 수정이나 삭제가 필요할 가능성을 생각하여 다이얼로그 내에 수정 버튼과 삭제 버튼을 추가하였다.

DB와 연동한 이후에 실험해 볼 예정이며, 마지막으로는 아두이노 테스트를 진행했는데 선을 연결하는 작업은 하드웨어를 담당하고 있는 팀원이 진행했지만 소프트웨어 부분에서 해결되지 못했던 부분들을 도와 해결하였다.

Author

Alec J

Posted on

2019-05-04

Updated on

2021-02-09

Licensed under