2011-02-08 2 views
0

슬라이더에서 소켓 통신의 문자열을 계측기로 보내려고합니다. 현재 슬라이더에서 찾을 수있는 유일한 리소스는 레이블을 업데이트하지만 슬라이더의 값은 다른 곳에서는 사용되지 않습니다. 이상적으로, 나는 메소드 호출에 하드 코딩 1000보다는 SIDER의 값으로 송신 주파수 명령과 같은 1000 내보기 컨트롤러에 다음 코드를 사용하여 값을 대체 할 싶습니다슬라이더 값 iOS

-(IBAction)Sine { 

    //[myNetwork sendCommand:@"*CLS\n"]; 
    //[myNetwork sendCommand:@"*RST\n"]; 
    [myNetwork sendCommand:@"SOURCE1:FUNCTION SIN\n"]; 
    [myNetwork sendCommand:@"SOURCE1:FREQUENCY 1000\n"]; 
    [myNetwork sendCommand:@"SOURCE1:VOLT:UNIT VPP\n"]; 
    [myNetwork sendCommand:@"SOURCE1:VOLT 2\n"]; 
    [myNetwork sendCommand:@"SOURCE1:VOLT:OFFSET 0\n"]; 
    [myNetwork sendCommand:@"OUTPUT1:LOAD 50\n"]; 
    [myNetwork sendCommand:@"OUTPUT1 ON\n"]; 
    [myNetwork sendCommand:@"OUTPUT2 ON\n"]; 
} 

이 아래는 인 sendCommand 방법 정의() : 여기

//sends command to the instrument and reuturns true if successful 
-(BOOL)sendCommand:(NSString *)command { 

    char *com = [command UTF8String]; 
    int comLength = strlen(com); 

    //send the string to the server 
    if (send(sockNum, com, comLength, 0) != comLength) { 
     return FALSE; 
    } 
    return TRUE; 
} 

그리고는 .H 파일의 프로토 타입입니다 :

- (BOOL)sendCommand:(NSString *)command; //send command to instr 

답변

3

UISlider는 속성이 value은 현재 값을 float로 반환합니다. 계측기에서 정수를 예상하는 경우 먼저 정수로 변환해야 할 수 있습니다. 기본적으로 값의 범위는 0에서 1이지만 슬라이더의 minimumValuemaximumValue 속성을 사용하여 값을 재정의 할 수 있습니다.

당신의 사인 방법에

, 단지 슬라이더의 값을 얻고 SOURCE1에 추가 : 지령 주파수 :

int frequency = (int) frequencySlider.value; 
[myNetwork sendCommand:[NSString stringWithFormat:@"SOURCE1:FREQUENCY %d\n", frequency]];