조회 TR을 처리하는 클래스이다. 조회 TR의 특징은 다음과 같다. 한개의 객체는 지정된 하나의 TR만 처리할 수 있다. 하나의 조회(서버전송 -> 서버수신)가 완료된 후에 다음 조회를 할 수 있다. 수신된 데이터는 다음 조회까지 데이터를 가지고 있다. Property ResFileName Res 파일을 지정 IsNext 연속조회 여부, 연속조회가 있는지 확인할 때 사용합니다. Method Request 조회 TR을 요청합니다. GetFieldData 블록의 필드 데이터(값)를 취득합니다. SetFieldData 블록의 필드 데이터(값)를 설정합니다. GetBlockCount 블록이 Occurs일 경우, Occurs의 개수를 취득합니다. SetBlockCount 블록의 개수를 설정합니다 . InBlock..
서버 연결, 로그인, 계좌 정보, 에러정보와 관련된 기능을 제공한다. Property SendPacketSize 한번에 전송되는 데이터의 크기 (기본값은 -1) ConnectTimeOut 서버에 연결을 시도하는 시간으로, 1/1000 초 단위 (기본값은 -1, 10초) Connect 시도 시에 입력된 시간 동안 연결이 되지 않을 경우 TimeOut 발생 Method ConnectServer 서버에 연결합니다. DisconnectServer 서버와의 연결을 종료합니다. IsConnected 서버연결이 되었는지 여부를 취득합니다. Login 서버에 로그인합니다. Logout 로그인한 서버에 대해 로그아웃합니다. GetAccountListCount 보유중인 계좌의 개수를 취득합니다. GetAccountList..
xingAPI의 COM 버전은 3개의 클래스로 이루어져 있다. XASession(XA_SESSIONLib) : 서버 연결, 로그인 등 XAQuery(XA_DATASETLib) : 조회 TR XAReal(XA_DATASETLib) : 실시간 TR XASession 서버 연결, 로그인, 계좌 정보, 에러정보와 관련된 기능을 제공한다. eBest Xing Session Lib의 COM을 참조하고 XA_SESSIONLib 네임스페이스를 using하고 XASessionClass로 객체를 생성하여 사용할 수 있다. XAQuery 서버로 부터 데이터를 조회할 때 사용되는 기능을 제공한다. eBest Xing Dataset Lib의 COM을 참조하고 XA_DATASETLib 네임스페이스를 using하고 XAQueryC..
XingAPI는 COM과 DLL로 제공한다. python에서 COM을 사용하는 방법은 여기를 참고하면 된다. COM을 사용하기 위해서 win32com.client를 import하고 win32com.client.DispatchWithEvents()로 COM 객체를 만들면 된다. DispatchWithEvents()에 2개의 인자가 전달된다. 첫번째는 COM이름, 두번째는 이벤트 콜백시 호출될 클래스명이다. XingAPI는 3개의 COM이 제공된다. XA_Session.XASession XA_DataSet.XAQuery XA_DataSet.XAReal 각 COM에는 콜백으로 사용되는 이벤트 함수들이 정해져 있다. 예로 들어 XASession에서는 서버에서 로그인 요청이 끝나면 발생하는 Login()과 서버와..
바람이 불지 않는 실내에서 syma x5를 상승시켜도 syma x5가 제자리에서 상승하지 않고 한쪽으로 기우는 경우가 있다. 이때는 미세조절을 한다. 미세조절은 조정기에서 할 수 있다. 위의 그림처럼 미세조절버튼이 있는 것을 볼 수 있다. 미세조절버튼은 슬라이드 방식으로 양방향으로 밀어진다. 미세조절하는 방법은 간단하다. 드론이 기우는 방향의 반대 방향으로 버튼을 밀어주면 된다. 만약 드론이 좌로 기운다면 좌우미세조절버튼을 우로 밀면 된다. 드론이 앞으로 기운다면 전후미세조절버튼을 밑으로 밀면된다. 하지만 syma x5는 저가모델이라서 완벽하게 미세조절이 되지 않는다. 그래도 이 가격에 미세조절이 가능하다는 것에 감사하려고 한다.
드론 조종을 연습하면서 연습 방법에 대해서도 적어 두려고 한다. 여기서 설명하는 정보들은 인터넷에서 얻은 정보와 나의 경험에서 작성한다. 여기서 작성되는 내용은 syma x5와 syma x5의 1mode(일반적인 RC에서는 mode2라고 한더라)을 기준으로 한다. syma x5의 조종기의 왼쪽레바의 상 / 하가 드론의 상승 / 하강에 관계가 있다. 왼족레바를 위로 올릴 수록 모터의 회전이 빨라져서 상승하게 되고, 아래로 내리면 회전이 느려져서 하강하게 된다. 만일 레바를 끝까지 내리게 되면 모터는 회전을 멈추게 된다. 호버링은 드론이 상승하려는 힘(양력)과 지구가 당기는 힘(중력)이 같을 때, 드론이 제자리를 유지하는 것을 의미한다. 호버링을 하는 방법은 다음과 같다. 드론을 호버링하고 싶은 높이까지 올..
취미로 프로그래밍을 하면서 객체지향적인 프로그램 설계가 어려웠다. 독학으로 c언어를 시작해서 그런지 객체지향언어를 절차지향적으로 작성하는 경우가 너무 많았다. 단지 클래스를 이용해서 속성과 메서드를 작성할 뿐이었다. 결국 이렇게 만들어지는 프로그램은 당시에는 잘 작동하였지만, 이후 변경하기가 너무 어렵고 또한 재사용이 불가능에 가까웠다. 그래서 객체지향언어를 객체지향적으로 만들어 보고 싶어서 객체지향 설계에 관련된 책을 몇권 읽어 보았지만 제대로 코드로 적용시킬 수가 없었다. 그러던 중 이 책을 발견하고 읽게 되었다. 이 책이 지금까지 읽었던 책과는 다르게 코드를 작성할 때 사용되는 클래스, 속성, 연산, 가시성을 어떻게 설계해야 객체지향적인 모델링이 될 수 있는지 자세히 설명한다. 그리고 여기에 정보은..
파이썬2에서 한글을 사용하니 에러가 많이 발생해서 지금까지 알아낸 사실들을 정리해두려고 한다. 파이썬2 설치시 기본으로 제공되는 idle에서는 문자를 ascii를 사용한다. 그래서 한글은 ascii로 표현할 수 없는 문자이기 때문에 에러가 발생한다. 이때 소스코드 최상단에 아래와 같이 문자를 utf8로 인코딩하라고 지정하면 한글을 사용할 수 있다. # -*- encoding:utf-8 -*- 일부 편집기들은 자동으로 utf8로 인코딩시켜주는 경우도 있다. 그리고 한가지 더 알아야 할 사실이 있다. 소스코드와 인터프리터의 인코딩이 서로 다르다는 사실이다. 즉, 소스코드를 utf-8로 인코딩하였다고 하여도 인터프리터의 인코딩도 utf-8이 되지 않는다는 것이다. 인터프리터에서 아래와 같이 코드를 작성해보자...
아래코드는 Qt디자이너로 만든 .ui파일을 동적으로 로드하는 방법이다. import ui_sort_dialog import sys from PyQt4 import QtGui, uic class SortDialog(QtGui.QDialog): def __init__(self, parent=None): super(SortDialog, self).__init__(parent) self.ui = uic.loadUi("sort_dialog.ui", self) app = QtGui.QApplication(sys.argv) sort_dialog = SortDialog() sort_dialog.show() sys.exit(app.exec_())