衝動買いしたJDS6600。前回までの操作で、ある程度コマンドが見えてきた。
任意波形で、波形長2048以外を受け付けないのはちょっと残念だった。
高価なタイプだと、波形長1から2Mまで受け付けるのもあるようだが、さすがに低価格なだけはある。何か面白い使い方がないか考えてみよう。
とりあえず、動作確認をしてみた。
import serial
from time import sleep
ser= serial.Serial('/dev/ttyUSB0', baudrate=115200, timeout=3.0)
cmd=':w20=1,1.\r\n' #CH1,CH2 ON
bcmd=cmd.encode()
ser.write(bcmd)
a=ser.readline()
bcmd=a.decode()
print(bcmd)
b=0
c=0
stopf=60000000 #STOP Frequency:60MHz
stepf=100 #start Freqency:100Hz
#resp='ok'
print(bcmd)
while b<stopf:
c=c+1
if c>1 and c%9==1: #Decade per 10 Frequency point
b=b+stepf
stepf=b
else:
b=b+stepf
#print(c)
cmd=':w23='+str(b*100)+'.\r\n'
print(cmd) #:w23=10000. means Frequency=100Hz
bcmd=cmd.encode() #encode fron text to binary
ser.write(bcmd)
sleep(0.05) #IF use the lower frequency take more sleep time
bcmd=''
a=''
a=ser.readline()
bcmd=a.decode() #decode from binary to text
print(bcmd)
ser.close()
これ以上Sleepを短くすると動作がおかしくなるようだった。
また、当然だが、低い周波数を出力する場合は、周期を考えて、制御しないと波形の途中で変化してしまう。
とりあえず動いているみたいだ。