|
@@ -29,6 +29,10 @@ class Window(QTW.QWidget):
|
|
self.delayEdit = QTW.QSpinBox()
|
|
self.delayEdit = QTW.QSpinBox()
|
|
self.delayEdit.setMaximum(1000000)
|
|
self.delayEdit.setMaximum(1000000)
|
|
self.delayEdit.setValue(500)
|
|
self.delayEdit.setValue(500)
|
|
|
|
+ self.frontsLabel = QTW.QLabel("Fronts (us): ")
|
|
|
|
+ self.frontsEdit = QTW.QSpinBox()
|
|
|
|
+ self.frontsEdit.setMaximum(100)
|
|
|
|
+ self.frontsEdit.setValue(2)
|
|
self.numLabel = QTW.QLabel("Repeats: ")
|
|
self.numLabel = QTW.QLabel("Repeats: ")
|
|
self.numEdit = QTW.QSpinBox()
|
|
self.numEdit = QTW.QSpinBox()
|
|
self.numEdit.setMaximum(1000)
|
|
self.numEdit.setMaximum(1000)
|
|
@@ -39,6 +43,8 @@ class Window(QTW.QWidget):
|
|
self.paramLayout.addWidget(self.sigWidthEdit)
|
|
self.paramLayout.addWidget(self.sigWidthEdit)
|
|
self.paramLayout.addWidget(self.delayLabel)
|
|
self.paramLayout.addWidget(self.delayLabel)
|
|
self.paramLayout.addWidget(self.delayEdit)
|
|
self.paramLayout.addWidget(self.delayEdit)
|
|
|
|
+ self.paramLayout.addWidget(self.frontsLabel)
|
|
|
|
+ self.paramLayout.addWidget(self.frontsEdit)
|
|
self.paramLayout.addWidget(self.numLabel)
|
|
self.paramLayout.addWidget(self.numLabel)
|
|
self.paramLayout.addWidget(self.numEdit)
|
|
self.paramLayout.addWidget(self.numEdit)
|
|
|
|
|
|
@@ -77,6 +83,7 @@ class Window(QTW.QWidget):
|
|
if filename:
|
|
if filename:
|
|
swidth = self.sigWidthEdit.value()
|
|
swidth = self.sigWidthEdit.value()
|
|
delay = self.delayEdit.value()
|
|
delay = self.delayEdit.value()
|
|
|
|
+ fronts = self.frontsEdit.value()
|
|
num = self.numEdit.value()
|
|
num = self.numEdit.value()
|
|
sigtype = self.typeGenCombo.currentText()
|
|
sigtype = self.typeGenCombo.currentText()
|
|
|
|
|
|
@@ -86,10 +93,17 @@ class Window(QTW.QWidget):
|
|
if sigtype == "Rect":
|
|
if sigtype == "Rect":
|
|
delaySamples = delay * 125
|
|
delaySamples = delay * 125
|
|
highSamples = swidth * 125
|
|
highSamples = swidth * 125
|
|
|
|
+ frontSamples = fronts * 125
|
|
for i in range(num):
|
|
for i in range(num):
|
|
|
|
+ for j in range(frontSamples):
|
|
|
|
+ array = np.append(array, np.int16(32700 * j // frontSamples))
|
|
|
|
+ array = np.append(array, np.int16(0))
|
|
for j in range(highSamples):
|
|
for j in range(highSamples):
|
|
array = np.append(array, np.int16(32700))
|
|
array = np.append(array, np.int16(32700))
|
|
array = np.append(array, np.int16(0))
|
|
array = np.append(array, np.int16(0))
|
|
|
|
+ for j in range(frontSamples):
|
|
|
|
+ array = np.append(array, np.int16(32700 - 32700 * j // frontSamples))
|
|
|
|
+ array = np.append(array, np.int16(0))
|
|
for j in range(delaySamples):
|
|
for j in range(delaySamples):
|
|
array = np.append(array, np.int16(0))
|
|
array = np.append(array, np.int16(0))
|
|
array = np.append(array, np.int16(0))
|
|
array = np.append(array, np.int16(0))
|
|
@@ -125,30 +139,40 @@ class Window(QTW.QWidget):
|
|
|
|
|
|
swidth = self.sigWidthEdit.value()
|
|
swidth = self.sigWidthEdit.value()
|
|
delay = self.delayEdit.value()
|
|
delay = self.delayEdit.value()
|
|
|
|
+ fronts = self.frontsEdit.value()
|
|
freq = self.freqEdit.value()
|
|
freq = self.freqEdit.value()
|
|
|
|
+ print(len(alts))
|
|
|
|
+ print(len(phases))
|
|
fbuf = np.array([], dtype=np.float32)
|
|
fbuf = np.array([], dtype=np.float32)
|
|
- tbuf = np.arange(0, (swidth + delay) * 10e-6, 8 * 10e-9)
|
|
|
|
- fbuf = (alts / 32767) * np.sin(freq * 10e3 * tbuf + np.pi * phases / (32767 * 2))
|
|
|
|
|
|
+ tbuf = np.arange(0, np.float32((swidth + delay + 2 * fronts) * 10e-6), np.float32(8 * 10e-9))
|
|
|
|
+ fbuf = np.float32((alts / 32767) * np.float32(np.sin(2 * np.pi * freq * 100 * tbuf + np.pi * phases / (32767 * 2))))
|
|
|
|
+ print(fbuf[10000:12000])
|
|
|
|
|
|
- self.sock.connect(('rp-f082cf.local', 5005))
|
|
|
|
- buffer = struct.pack('<BIII', 0x02, len(fbuf), 0, 1)
|
|
|
|
|
|
+ self.sock.connect(('rp-f0cf82.local', 5005))
|
|
|
|
+ buffer = struct.pack('<BIII', 0x01, (len(fbuf) // 4096 + 1) * 4096, 1, 1)
|
|
self.sock.sendall(buffer)
|
|
self.sock.sendall(buffer)
|
|
- buffer = self.sock.recv(1024)
|
|
|
|
|
|
+ buffer = self.sock.recv(4096)
|
|
if buffer[0] == 0x11:
|
|
if buffer[0] == 0x11:
|
|
- for i in range(0, len(fbuf), 1019):
|
|
|
|
- datasize = 1019
|
|
|
|
- if len(fbuf) - i < 1019:
|
|
|
|
|
|
+ for i in range(0, len(fbuf), 509):
|
|
|
|
+ datasize = 509
|
|
|
|
+ if len(fbuf) - i < 509:
|
|
datasize = len(fbuf) - i
|
|
datasize = len(fbuf) - i
|
|
- buffer = struct.pack('<BI', 0x31, np.uint32(datasize)) + fbuf[i:(i+datasize)].tobytes()
|
|
|
|
-
|
|
|
|
|
|
+ buffer = struct.pack('<BI', 0x11, np.uint32(datasize)) + fbuf[i:(i+datasize)].tobytes()
|
|
|
|
+ print(np.frombuffer(fbuf[i:(i+datasize)].tobytes(), dtype=np.float32, count=1, offset=0))
|
|
self.sock.sendall(buffer)
|
|
self.sock.sendall(buffer)
|
|
- buffer = self.sock.recv(1024)
|
|
|
|
|
|
+ buffer = self.sock.recv(4096)
|
|
if buffer[0] != 0x11:
|
|
if buffer[0] != 0x11:
|
|
|
|
+ self.sock.close()
|
|
return -1
|
|
return -1
|
|
|
|
+ else:
|
|
|
|
+ self.sock.close()
|
|
|
|
+ return -1
|
|
buffer = struct.pack('<B', 0x21)
|
|
buffer = struct.pack('<B', 0x21)
|
|
self.sock.sendall(buffer)
|
|
self.sock.sendall(buffer)
|
|
|
|
+ buffer = self.sock.recv(1024)
|
|
if buffer[0] == 0x01:
|
|
if buffer[0] == 0x01:
|
|
- self.loadLabel.setText("Loaded")
|
|
|
|
|
|
+ self.loadLabel.setText("Loaded")
|
|
|
|
+ self.sock.close()
|
|
|
|
|
|
|
|
|
|
|
|
|