2011-02-08 102 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]];