我正在尝试将 slider 的值作为套接字通信中的字符串发送到仪器。目前,我能够在 slider 更新标签上找到的唯一资源,但 slider 的值未在其他地方使用。理想情况下,我想在我的 View Controller 中使用以下代码,并将发送频率命令中的值(例如 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 文件中的原型(prototype):
- (BOOL)sendCommand:(NSString *)command; //send command to instr
最佳答案
UISlider 有一个属性 value
,它以 float 形式返回当前值。如果您的仪器需要一个整数,您可能需要先转换它。默认情况下,该值在 0 到 1 的范围内,但您可以使用 slider 的 minimumValue 覆盖它。和 maximumValue特性。
在您的 Sine 方法中,只需获取 slider 的值并将其添加到 SOURCE1:FREQUENCY 命令:
int frequency = (int) frequencySlider.value;
[myNetwork sendCommand:[NSString stringWithFormat:@"SOURCE1:FREQUENCY %d\n", frequency]];
关于ipad - slider 值 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4930804/