2011-02-08 110 views
0

我試圖從滑塊發送一個值作爲套接字通信中的字符串到儀器。目前,我已經能夠在滑塊上找到唯一的資源更新標籤,但滑塊的值不在其他地方使用。理想情況下,我想在發送頻率命令與代爾的值使用下面的代碼在我的視圖控制器和替換值,如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]];