DGPS, WAAS, MSAS

 

GPS수신기 중 RTCM처리가능한 수신기를 이용하여 ntrip 서비스로부터 받은 RTCM을 수신기에 전달,

최종보정된 정보를 NMEA로 받는형식.

DGPS방식

0. 위성항법중앙사무소에서 생성되는 GPS보정정보이용

    - 지상국을 통해 중파대역으로 방송되는 신호 수신 -> 안테나 졸라 크고 비쌈.

    - ip망으로 정보 수신 https://www.ndgps.go.kr/ 가입후 신청(무료)

1. WAAS나 MSAS 등 DGPS위성신호 수신

    - 전리층영향, 미국일본 정지위성 위치상 국내적용시 오차발생(MSAS이용시 약 5미터내외)

 

결론

국내에서 고정밀(3M이내) 위치정보 이용을 윈할경우 위성항법중앙사무소에서 제공하는 NTRIP정보를 ip망으로 받아 보정해야함.

 

관련사이트

위성항법중앙사무소(https://www.ndgps.go.kr)

http://blog.naver.com/PostView.nhn?blogId=yaba322&logNo=130127848432

https://play.google.com/store/apps/details?id=kr.co.avad.dgpsclient&hl=ko

Trackbacks 0 / Comments 0

Leave Comments

ios 스레드 동작 중 Activity Indicator사용

네트웍을 통한 데이터 송수신 등 시간이 걸리는 작업 시 thread 및 Activity Indicator사용을 많이 합니다.

performselector로 인디케이터 돌리고 작업시킨 다음 indicator 핸들로 stop를 했더니 일반적인

경우에는 잘 작동하였으나 performselector가 해당 함수를 호출하기 전에 아래 작업이 모두 끝나고

indicator stopAnimation까지 호출되는 상황 발생. 그 늦게 발동한 indicator의 무한 뺑뻉이...

 

그래서 stop도 performselector로 호출.

 

아래는 작업한 소스코드

 

//
//
//  Created by likehood on 12. 1. 30..
//


//in AppDelegate.h
@interface CAppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>
-(void) threadStartActivityIndicator:(UIActivityIndicatorView*) indi;
-(void) threadStopActivityIndicator:(UIActivityIndicatorView*) indi;
@end

//  AppDelegate.m
-(void) stopActivityIndicator:(UIActivityIndicatorView*) indi
{
    [indi stopAnimating];
    [indi removeFromSuperview];
    NSLog(@"STOP INDICATOR");
}
-(void) startActivityIndicator:(UIActivityIndicatorView*) indi
{
    UIWindow*   appWindow = [UIApplication sharedApplication].keyWindow;
    indi.color = [[UIColor alloc] initWithWhite:0.5 alpha:1];//  initWithRed:1 green:0 blue:0 alpha:1.0 ];
    CGRect rectCenter=appWindow.frame;
    rectCenter.size.height=rectCenter.size.height;
    [indi setFrame:rectCenter];
    [appWindow addSubview:indi];
    [indi bringSubviewToFront:appWindow];
    indi.hidesWhenStopped  = YES;
    [indi startAnimating];
    NSLog(@"START INDICATOR");
}
//in using class  .m

-(void) threadLoadList
{
    UIActivityIndicatorView*      indi=[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    CNIAppDelegate* delegate = (CNIAppDelegate*)[[UIApplication sharedApplication] delegate];
    [delegate performSelector:@selector(startActivityIndicator:) onThread:[NSThread mainThread] withObject:indi waitUntilDone:NO];
    //
    // thread code here
    //
   
    [delegate performSelector:@selector(stopActivityIndicator:) onThread:[NSThread mainThread] withObject:indi waitUntilDone:YES];
    [NSThread exit];
}

- (void) loadList
{
    [NSThread detachNewThreadSelector:@selector(threadLoadList) toTarget:self withObject:nil];
}

Trackbacks 0 / Comments 0

Leave Comments

betabuilder를 이용하여 ios Adhoc 배포시 주의사항

http://seapy.com/1975

아래 사이트를 따라 하면 잘됩니다.

주의사항 몇가지...

BetaBuilder에서 Full Web deployment path를 입력할때

1. 경로의 마지막에 /를 넣으면 안됩니다.

2. 정규 80포트가 아닌경우 정상적으로 다운로드가 안됩니다.

   X : http://likehood.net:8080/ios

   O : http://likehood.net/ios

  

'개발' 카테고리의 다른 글

DGPS, WAAS, MSAS  (0) 2013.03.08
ios 스레드 동작 중 Activity Indicator사용  (0) 2013.03.07
betabuilder를 이용하여 ios Adhoc 배포시 주의사항  (0) 2013.03.07
XCODE 4.6 업데이트 후 메소드 워닝  (0) 2013.02.13
ios Custom Cell Row Height설정  (0) 2013.02.06
제곱근  (0) 2012.07.16

Trackbacks 0 / Comments 0

Leave Comments

XCODE 4.6 업데이트 후 메소드 워닝

수많은 메소드 선언부에 나타나는 아래와 같은 메세지..

used as the name of the previous parameter rather than as part of the selector

 

컴파일러가 메소드 선언시에 애매하게 사용한 부분에 대한 워닝을 강화한 듯 하다.

워닝을 없애기 위해서 해야할 일은 명확하게 선언하는 것. 더불어 메소드 사용이 잘못된 파라메터 인수를 넘기는

실수를 예방하는 효과까지 있으니 이제부터라도 메소드 선언을 명확히 하자.

 

- (void)setWH:(int) w:(int)h; // 'w' used as name of previous parameter rather than as part of selector

메소드 선언후 컴파일 하면 위 주석과 같은 워닝이 발생한다. objective c의 특징을 잘 활용하기 위해서는 아래와 같이 선언하고 사용하는게 좋지않을까..

- (void) setW:(int)w h:(int)h;

또는, 더 명확한? 사용을 위해서는..

- (void) setWidth:(int)width height:(int)height;

오늘 xcode업뎃하고 수없이 많이 나온 메소드선언 워닝.. 일단 무시하고 새롭게 선언되는 메소드부터 차근차근적용하자.

 

 

'개발' 카테고리의 다른 글

ios 스레드 동작 중 Activity Indicator사용  (0) 2013.03.07
betabuilder를 이용하여 ios Adhoc 배포시 주의사항  (0) 2013.03.07
XCODE 4.6 업데이트 후 메소드 워닝  (0) 2013.02.13
ios Custom Cell Row Height설정  (0) 2013.02.06
제곱근  (0) 2012.07.16
Hotkey Agent 1.0  (0) 2009.12.28

Trackbacks 0 / Comments 0

Leave Comments

ios Custom Cell Row Height설정

Custom Cell 제작시..

heightForRowAtIndexPath에서 높이값을 고정으로 리턴하는 경우가 많다. 사실 커스텀 셀의 높이를 수시로 바꿀일이 없기때문에 size inspecter에서 row height를 보고 박아놔도 상관은 없겠다. 

또는 viewDidLoad에서 tableView.rowHeight에 값을 밖아놔도 되겠다.


하지만 시간이 지나서 셀에 뭔가 를 추가하고 row 높이만 변경해버리면 버그발생되는것이다.

힘들지않다면 아래처럼 하는게 낮지 않을까?

 


-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

    if(indexPath.section == 0)

    {

        static NSString *CellIdentifierSummary = @"CompletionCell";

        UICompletionViewCell *cellSummary= (UICompletionViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifierSummary];

        if(cellSummary == nil)

        {

            NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"UICompletionViewCell" owner:self options:nil];

            cellSummary = (UICompletionViewCell *)[nib objectAtIndex:0];

        }

        return cellSummary.frame.size.height;

    }

    else

    {

        static NSString *CellIdentifier = @"Cell";

        UITableViewCell *cell= (UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        if(cell == nil)

        {

            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"Cell" ];

        }

         return cell.frame.size.height;

    }

        

}


'개발' 카테고리의 다른 글

betabuilder를 이용하여 ios Adhoc 배포시 주의사항  (0) 2013.03.07
XCODE 4.6 업데이트 후 메소드 워닝  (0) 2013.02.13
ios Custom Cell Row Height설정  (0) 2013.02.06
제곱근  (0) 2012.07.16
Hotkey Agent 1.0  (0) 2009.12.28
SimpleMP3  (0) 2009.10.12

Trackbacks 0 / Comments 0

Leave Comments

제곱근

x의 a승 = y인경우

x= y의 1/a승

x의 2승 = 4일경우

x= 4의 1/2승

x= 2

double result = pow(x,(1/y);

 

 

'개발' 카테고리의 다른 글

XCODE 4.6 업데이트 후 메소드 워닝  (0) 2013.02.13
ios Custom Cell Row Height설정  (0) 2013.02.06
제곱근  (0) 2012.07.16
Hotkey Agent 1.0  (0) 2009.12.28
SimpleMP3  (0) 2009.10.12
MSXML 6.0 DTD포함 문서 load() 실패문제  (0) 2008.12.18

Trackbacks 0 / Comments 0

Leave Comments

Hotkey Agent 1.0

winkey + e 같은경우 파일익스플로러가 실행되듯이
자주사용하는 프로그램을  핫키로 지정하여 사용할 수 있도록 하는  간단한 s/w입니다..



아래 펑션키와 단축키를 지정하고, 실행파일 경로를 지정한 다음 등록을 누르면 핫키가 지정됩니다.

iexplorer 같이 인자값으로 url을 등록하면 바로 해당 페이지로 인터넷 익스플로러가 실행됩니다.

거지같은 UI지만 한번 실행해 두면 다음 부팅시에는 계속 자동으로 실행됩니다.

필요하신분들은 받아가시길~~

'개발' 카테고리의 다른 글

ios Custom Cell Row Height설정  (0) 2013.02.06
제곱근  (0) 2012.07.16
Hotkey Agent 1.0  (0) 2009.12.28
SimpleMP3  (0) 2009.10.12
MSXML 6.0 DTD포함 문서 load() 실패문제  (0) 2008.12.18
simpleAdo 20081112b  (0) 2008.11.12

Trackbacks 3 / Comments 0

Leave Comments

SimpleMP3


album art 지원
가사지원(USLT)
file/folder  drag&drop 지원
Lib : fmod, cximage

간단한 mp3 플레이어입니다..
버그발견시 연락부탁드릴께요~




'개발' 카테고리의 다른 글

제곱근  (0) 2012.07.16
Hotkey Agent 1.0  (0) 2009.12.28
SimpleMP3  (0) 2009.10.12
MSXML 6.0 DTD포함 문서 load() 실패문제  (0) 2008.12.18
simpleAdo 20081112b  (0) 2008.11.12
MS-SQL에서 ALTER TABLE로 컬럼생성시 위치지정하기  (0) 2008.11.12

Trackbacks 0 / Comments 0

Leave Comments

MSXML 6.0 DTD포함 문서 load() 실패문제


MSXML사용시 DTD( <!DOCTYPE ...> ) 가 포함된 xml문서의 경우 DomDocument::load()함수가 실패합니다.
xml문서의 유효성검사를 FALSE를 주면 해결이 됩니다.

m_pDoc->validateOnParse = VARIANT_FALSE;



DOM Document를 사용중 MSXML6을 사용하니까 갑자기 잘 읽히던 XML문서가 에러를 밷어서 확인해 보니 MSXML6.0 이하의 경우 ProhibitDTD 프로퍼티가 디폴트로 FALSE였었는데 6.0으로 오면서 디폴트 값이 TRUE로 되어있습니다.

m_pDoc->setProperty(_bstr_t(_T("ProhibitDTD")),_variant_t(false));


 


이렇게 해결..

MSDN문서에 아래와 같이 기술되어 있네요.

ProhibitDTD Property

Specifies whether to prohibit (true) or allow (false) the inclusion of a DTD in the XML DOM document.

This property is supported in MSXML 3.0 SP5, 4.0 SP3, 5.0 SP2, and 6.0. The default value is false for 3.0, 4.0, and 5.0. The default value is true for 6.0.

This property has security implications. For more information, see MSXML Security Overview and DOM Security.



http://msdn.microsoft.com/en-us/library/ms762632.aspx

http://social.msdn.microsoft.com/forums/en-US/xmlandnetfx/thread/4a01af90-2cb6-4311-bc87-531d83d3456e/

'개발' 카테고리의 다른 글

Hotkey Agent 1.0  (0) 2009.12.28
SimpleMP3  (0) 2009.10.12
MSXML 6.0 DTD포함 문서 load() 실패문제  (0) 2008.12.18
simpleAdo 20081112b  (0) 2008.11.12
MS-SQL에서 ALTER TABLE로 컬럼생성시 위치지정하기  (0) 2008.11.12
파일 존재여부 확인  (0) 2008.09.11

Trackbacks 0 / Comments 0

Leave Comments

simpleAdo 20081112b

  - Modify Date/Ver : 20081112/ 2008.11.12a
   - 컬럼 헤더 이름을 가져오는 함수 추가.
    - added functions
    BOOL GetHeaderString(const long nCol, CString &strData) const; 
   - ExcuteQry()에서 컬럼데이터를 가져올 때 이름기준으로 가져오는 경우 join시 중복된 컬럼이름때문에  같은 데이터를 가져오는 문제 해결
    - Mod functions : 인덱스 기준으로 데이터를 가져옴.
      ExcuteQry(), ExcuteQryEx()
   - version 관리를 수정일로 변경
   - 컬럼이름으로 해당 ROW의 데이터 가져오는 함수 추가
       - BOOL GetDataByColName(const LPCSTR lpszColName, const long nRow,CString &strData) const


'개발' 카테고리의 다른 글

SimpleMP3  (0) 2009.10.12
MSXML 6.0 DTD포함 문서 load() 실패문제  (0) 2008.12.18
simpleAdo 20081112b  (0) 2008.11.12
MS-SQL에서 ALTER TABLE로 컬럼생성시 위치지정하기  (0) 2008.11.12
파일 존재여부 확인  (0) 2008.09.11
Doxygen 및 HTML Help workshop 설치  (0) 2008.06.13

Trackbacks 0 / Comments 0

Leave Comments