我正在尝试将滑块中的值作为套接字通信中的字符串发送到乐器。目前,我能够在滑块上找到的唯一资源更新标签,但滑块的值未在其他地方使用。理想情况下,我想在我的View Controller中使用以下代码,并将send frequency命令中的值1000替换为sider的值而不是硬编码1000到方法调用中:
-(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
答案 0 :(得分:3)
UISlider有一个属性value
,它将当前值作为float返回。如果您的仪器需要整数,您可能需要先转换它。默认情况下,该值的范围为0到1,但您可以使用滑块的minimumValue和maximumValue属性覆盖该值。
在Sine方法中,只需获取滑块的值并将其添加到SOURCE1:FREQUENCY命令:
int frequency = (int) frequencySlider.value;
[myNetwork sendCommand:[NSString stringWithFormat:@"SOURCE1:FREQUENCY %d\n", frequency]];