diff --git a/src/constants.h b/src/constants.h index c419d97e644912b3c03562475e76045f6dd3dde8..60bf38e046c2f21b67d4af302088dc099973a664 100644 --- a/src/constants.h +++ b/src/constants.h @@ -29,6 +29,8 @@ #ifndef CONSTANTS_H #define CONSTANTS_H +#define PI 3.141592653589793 + #define FPGAS_PER_BOARD 4 #define C_S_pn 12 @@ -39,7 +41,7 @@ #define C_WG_MODE_OFF 0 #define C_WG_MODE_CALC 1 #define C_WG_AMPL_UNIT 65536 // 2^16 -#define C_WG_PHASE_UNIT (65536.0 / 360.0) // 2^16 / 360 +#define C_WG_PHASE_UNIT (65536.0 / (2 * PI)) // 2^16 / 2*pi #define C_WG_FREQ_UNIT 2147483648 // 2^31 #define C_BSN_LATENCY 20000 // 1 period = 5.12us, 20000 = +/- 100ms diff --git a/test/py/control/wg.py b/test/py/control/wg.py index 1dbfad6746915f43439ff2cc35ab5fbe35b3e527..a4955aad7d76adc5f4625ace9cc60686b56ecc9e 100755 --- a/test/py/control/wg.py +++ b/test/py/control/wg.py @@ -36,6 +36,7 @@ import traceback import argparse import time import pprint +import math from base import * @@ -64,10 +65,10 @@ class WaveformGenerator(object): return self._ampl def set_phase(self, value, mode=None): - phase = value + phase = value / (360 / (2 * math.pi)) mode = 'sinus' if mode is None else mode.lower() if mode == 'xst': - self.client.write('wg_phase', ([i * (360 / self.S_PN) for i in range(self.S_PN)] * self.n_nodes)) + self.client.write('wg_phase', ([i * ((2 * math.pi) / self.S_PN) for i in range(self.S_PN)] * self.n_nodes)) else: # must be for sinus self.client.write('wg_phase', ([phase] * self.S_PN * self.n_nodes)) @@ -75,7 +76,7 @@ class WaveformGenerator(object): def get_phase(self): self._phase = self.client.read('wg_phase') - return self._phase + return [i * (360 / (2 * math.pi)) for i in self._phase] def set_freq(self, value, mode=None): freq = value @@ -160,10 +161,10 @@ if __name__ == "__main__": parser.add_argument('--mode', type=str, choices=['xst', 'sinus'], help="select wg mode") parser.add_argument('--setfreq', type=float, help="set wg freq") parser.add_argument('--setampl', type=float, help="set wg ampl") - parser.add_argument('--setphase', type=float, help="set wg phase") + parser.add_argument('--setphase', type=float, help="set wg phase in degrees") parser.add_argument('--getfreq', action='store_true', help="get wg freq") parser.add_argument('--getampl', action='store_true', help="get wg ampl") - parser.add_argument('--getphase', action='store_true', help="get wg phase") + parser.add_argument('--getphase', action='store_true', help="get wg phase in degrees") parser.add_argument('--enable', action='store_true', help="turn on wg signal") parser.add_argument('--disable', action='store_true', help="turn off wg signal") parser.add_argument('--toggle', action='store_true', help="turn the wg signal off and on again")