2011-02-08 6 views
0

スライダからの値をソケット通信の文字列として計測器に送信しようとしています。現在のところ、私がスライダーで見つけた唯一のリソースはラベルを更新しますが、スライダーの値は他の場所では使用されません。理想的には、私は、メソッド呼び出しにハードコーディング1000年ではなく、サイダーの値と送信周波数指令に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は現在の値を浮動小数点として返す。計測器が整数を予期している場合は、最初に変換することができます。デフォルトでは、値は0〜1の範囲ですが、スライダーのminimumValuemaximumValueのプロパティを使用して値を上書きすることができます。あなたの正弦法で

、ちょうどスライダーの値を取得し、SOURCE1に追加:周波数指令:

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