##// END OF EJS Templates
New experiment views
New experiment views

File last commit:

r360:46316742ce9f
r360:46316742ce9f
Show More
models.py
310 lines | 9.2 KiB | text/x-python | PythonLexer
Juan C. Espinoza
Update RC models, views, templates & statics...
r45 import ast
Juan C. Espinoza
Updates to models, views & forms for CR...
r25 import json
Juan C. Espinoza
Improve RC pulses plot and Operation view...
r175 import requests
Primer commit radarsys_met
r345 import base64
Juan C. Espinoza
Update RC model, RC api for testing...
r185 from struct import pack
Juan C. Espinoza
Updates to models, views & forms for CR...
r25
Juan C. Espinoza
Proyecto base en Django (refs #259) ...
r0 from django.db import models
Nueva plantilla, prueba comunicacion y nuevos campos ddsrest
r335 from django.urls import reverse
Juan C. Espinoza
Add rc config mods...
r23 from django.core.validators import MinValueValidator, MaxValueValidator
Juan C. Espinoza
Updating base models and views ...
r6 from apps.main.models import Configuration
Juan C. Espinoza
- Update rc app...
r79
Primer commit radarsys_met
r345 BOARD_VALUE = (
('1', 'A:AB'),
Pedestal comma bug fixed, help text added and more
r352 ('2', 'AB'),
('3', 'A:A A:B'),
Primer commit radarsys_met
r345 )
ANT_VALUE = (
Limpieza de código y funcionalidades usrp
r346 ('1', 'RX'),
('2', 'TX')
Primer commit radarsys_met
r345 )
CLK_VALUE = (
('1', 'internal'),
('2', 'external')
)
TIME_VALUE = (
('1', 'internal'),
('2', 'external')
)
Juan C. Espinoza
Updating base models and views ...
r6
Limpieza de código y funcionalidades usrp
r346 class USRPRXConfiguration(Configuration):
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172
Pedestal comma bug fixed, help text added and more
r352 ip_address = models.GenericIPAddressField(
verbose_name = 'IP address',
protocol='IPv4',
default='0.0.0.0')
Primer commit radarsys_met
r345 daughterboard = models.CharField(
verbose_name='Daughterboard',
max_length=3,
choices=BOARD_VALUE,
null=False,
blank=False
)
Juan C. Espinoza
Updating base models and views ...
r6
Primer commit radarsys_met
r345 antenna = models.CharField(
verbose_name='Antenna',
max_length=3,
choices=ANT_VALUE,
null=False,
blank=False
)
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172
Primer commit radarsys_met
r345 samplerate = models.FloatField(
verbose_name='Sample Rate',
blank=False,
Pedestal comma bug fixed, help text added and more
r352 null=False,
help_text='Introduce the value in MHz (10^6)'
Primer commit radarsys_met
r345 )
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172
Primer commit radarsys_met
r345 frequency = models.FloatField(
verbose_name='Frequency',
Pedestal comma bug fixed, help text added and more
r352 blank=False,
null=False,
help_text='Introduce the value in MHz (10^6)'
Primer commit radarsys_met
r345 )
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172
Primer commit radarsys_met
r345 datadir = models.CharField(
verbose_name="Data Directory",
max_length=100,
default='',
Pedestal comma bug fixed, help text added and more
r352 blank=False,
null=False,
help_text='Fill with a directory. Example: /media/soporte/DATA'
Primer commit radarsys_met
r345 )
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172
Primer commit radarsys_met
r345 clocksource = models.CharField(
verbose_name='Clock Source',
max_length=3,
choices=CLK_VALUE,
null=False,
blank=False
)
timesource = models.CharField(
verbose_name='Time Source',
max_length=3,
choices=TIME_VALUE,
null=False,
blank=False
)
clockrate = models.FloatField(
verbose_name='Clock Rate',
blank=False,
Pedestal comma bug fixed, help text added and more
r352 null=False,
help_text='Introduce the value in MHz (10^6)'
Primer commit radarsys_met
r345 )
class Meta:
Limpieza de código y funcionalidades usrp
r346 db_table = 'usrp_rx_configurations'
Primer commit radarsys_met
r345
def __str__(self):
Pedestal comma bug fixed, help text added and more
r352 return str(self.label)
Primer commit radarsys_met
r345
def get_absolute_url_plot(self):
return reverse('url_plot_usrp_rx_pulses', args=[str(self.id)])
Juan C. Espinoza
- Update rc app...
r79
Fiorella Quino
RC files have been updated...
r264 def request(self, cmd, method='get', **kwargs):
Primer commit radarsys_met
r345
Fiorella Quino
RC files have been updated...
r264 req = getattr(requests, method)(self.device.url(cmd), **kwargs)
payload = req.json()
return payload
Juan C. Espinoza
Improve RC pulses plot and Operation view...
r175 def status_device(self):
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172
Juan C. Espinoza
Update RC API methods...
r222 try:
Generator parameter type fixed, devices status & warning messages
r350 #self.device.status = 0
#payload = self.request('status')
payload = requests.get(self.device.url())
print(payload)
if payload:
self.device.status = 1
Fiorella Quino
RC files have been updated...
r264 elif payload['status']=='disable':
Juan C. Espinoza
Update RC API methods...
r222 self.device.status = 2
Juan C. Espinoza
Update RC model, RC api for testing...
r185 else:
Fiorella Quino
import/export functions have been updated...
r243 self.device.status = 1
Juan C. Espinoza
Update RC API methods...
r222 self.device.save()
Generator parameter type fixed, devices status & warning messages
r350 self.message = 'USRP Rx Dev status: {}'.format(payload['status'])
Juan C. Espinoza
Update RC API methods...
r222 return False
Juan C. Espinoza
Update RC model, RC api for testing...
r185 except Exception as e:
Juan C. Espinoza
Update RC API methods...
r222 if 'No route to host' not in str(e):
self.device.status = 4
self.device.save()
Limpieza de código y funcionalidades usrp
r346 self.message = 'USRP Rx status: {}'.format(str(e))
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return False
Fiorella Quino
import/export functions have been updated...
r243
self.device.save()
return True
Juan C. Espinoza
Improve RC pulses plot and Operation view...
r175
def reset_device(self):
Fiorella Quino
import/export functions have been updated...
r243
Juan C. Espinoza
Update RC model, RC api for testing...
r185 try:
Fiorella Quino
RC files have been updated...
r264 payload = self.request('reset', 'post')
Juan C. Espinoza
Update RC API methods...
r222 if payload['reset']=='ok':
Limpieza de código y funcionalidades usrp
r346 self.message = 'USRP Rx restarted OK'
Fiorella Quino
RC files have been updated...
r264 self.device.status = 2
self.device.save()
Juan C. Espinoza
Update RC model, RC api for testing...
r185 else:
Limpieza de código y funcionalidades usrp
r346 self.message = 'USRP Rx restart fail'
Juan C. Espinoza
Update RC model, RC api for testing...
r185 self.device.status = 4
self.device.save()
except Exception as e:
Limpieza de código y funcionalidades usrp
r346 self.message = 'USRP Rx reset: {}'.format(str(e))
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return False
Fiorella Quino
import/export functions have been updated...
r243
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return True
Fiorella Quino
import/export functions have been updated...
r243
Juan C. Espinoza
Improve RC pulses plot and Operation view...
r175 def stop_device(self):
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172
Juan C. Espinoza
Update RC model, RC api for testing...
r185 try:
New experiment views
r360 command = self.device.url() + "stoprx"
Limpieza de código y funcionalidades usrp
r346 r = requests.get(command)
if r:
self.device.status = 4
Juan C. Espinoza
Update RC model, RC api for testing...
r185 self.device.save()
Limpieza de código y funcionalidades usrp
r346 self.message = 'USRP stopped'
Juan C. Espinoza
Update RC model, RC api for testing...
r185 else:
self.device.status = 4
self.device.save()
return False
except Exception as e:
Juan C. Espinoza
Update RC API methods...
r222 if 'No route to host' not in str(e):
self.device.status = 4
else:
self.device.status = 0
Generator parameter type fixed, devices status & warning messages
r350 #self.message = 'USRP Rx stop: {}'.format(str(e))
self.message = "USRP Rx can't start, please check network/device connection or IP address/port configuration"
Juan C. Espinoza
Update RC API methods...
r222 self.device.save()
Fiorella Quino
import/export functions have been updated...
r243 return False
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return True
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172
Generator parameter type fixed, devices status & warning messages
r350 def start_device(self):
Juan C. Espinoza
Update RC model, RC api for testing...
r185 try:
Limpieza de código y funcionalidades usrp
r346 usrp = USRPRXConfiguration.objects.get(pk=self)
Primer commit radarsys_met
r345 usrp_daughterboard = usrp.get_daughterboard_display()
usrp_antenna = usrp.get_antenna_display()
usrp_clocksource = usrp.get_clocksource_display()
usrp_timesource = usrp.get_timesource_display()
print(usrp)
Pedestal comma bug fixed, help text added and more
r352 payload = {'ip_address': usrp.ip_address, 'daughterboard': usrp_daughterboard, 'antenna': usrp_antenna, 'sample_rate': usrp.samplerate, 'frequency': usrp.frequency,
Primer commit radarsys_met
r345 'datadir': usrp.datadir, 'clock_source': usrp_clocksource, 'time_source': usrp_timesource, 'clock_rate':usrp.clockrate}
print(payload)
Pulse generator & USRP_Tx devices added
r348 r = requests.post(self.device.url("usrprx"), json=payload)
Limpieza de código y funcionalidades usrp
r346 print(r.text)
Primer commit radarsys_met
r345 #payload = self.request('usrp', 'post', data=json.dumps(data))
#print(payload)
Limpieza de código y funcionalidades usrp
r346 if r:
Juan C. Espinoza
Update RC model, RC api for testing...
r185 self.device.status = 3
self.device.save()
Limpieza de código y funcionalidades usrp
r346 self.message = 'USRP Rx configured and started'
Juan C. Espinoza
Update RC model, RC api for testing...
r185 else:
return False
except Exception as e:
Juan C. Espinoza
Update RC API methods...
r222 if 'No route to host' not in str(e):
self.device.status = 4
else:
self.device.status = 0
Generator parameter type fixed, devices status & warning messages
r350 #self.message = 'USRP Rx start: {}'.format(str(e))
self.message = "USRP Rx can't start, please check network/device connection or IP address/port configuration"
Juan C. Espinoza
Update RC API methods...
r222 self.device.save()
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return False
Fiorella Quino
import/export functions have been updated...
r243
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return True
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172
Limpieza de código y funcionalidades usrp
r346 #def write_device(self, raw=False):
SIR with docker-compose working
r299
Juan C. Espinoza
Add compatibility with embed CGS in RC
r328 if not raw:
clock = RCClock.objects.get(rc_configuration=self)
Primer commit radarsys_met
r345 print(clock)
Juan C. Espinoza
Add compatibility with embed CGS in RC
r328 if clock.mode:
data = {'default': clock.frequency}
else:
data = {'manual': [clock.multiplier, clock.divisor, clock.reference]}
payload = self.request('setfreq', 'post', data=json.dumps(data))
Primer commit radarsys_met
r345 print(payload)
Nueva plantilla, prueba comunicacion y nuevos campos ddsrest
r335 if payload['command'] != 'ok':
Limpieza de código y funcionalidades usrp
r346 self.message = 'USRP Rx write: {}'.format(payload['command'])
Juan C. Espinoza
Add compatibility with embed CGS in RC
r328 else:
self.message = payload['programming']
if payload['programming'] == 'fail':
Limpieza de código y funcionalidades usrp
r346 self.message = 'USRP Rx write: error programming CGS chip'
Juan C. Espinoza
Add compatibility with embed CGS in RC
r328
SIR with docker-compose working
r299 values = []
for pulse, delay in zip(self.get_pulses(), self.get_delays()):
Fix extra delays in RC when delay is bigger than 65536 (16bits)
r302 while delay>65536:
SIR with docker-compose working
r299 values.append((pulse, 65535))
Fix extra delays in RC when delay is bigger than 65536 (16bits)
r302 delay -= 65536
SIR with docker-compose working
r299 values.append((pulse, delay-1))
Juan C. Espinoza
Update RC control methods, add change_ip for RC, fix win_reference for sub-baudio...
r236 data = bytearray()
Fiorella Quino
import/export functions have been updated...
r243 #reset
data.extend((128, 0))
#disable
Juan C. Espinoza
Update RC control methods, add change_ip for RC, fix win_reference for sub-baudio...
r236 data.extend((129, 0))
Add control_sw value in write_device RC
r304 #SW switch
if self.control_sw:
data.extend((130, 2))
else:
data.extend((130, 0))
Fiorella Quino
import/export functions have been updated...
r243 #divider
data.extend((131, self.clock_divider-1))
Juan C. Espinoza
Update RC control methods, add change_ip for RC, fix win_reference for sub-baudio...
r236 #enable writing
data.extend((139, 62))
Fiorella Quino
import/export functions have been updated...
r243
Juan C. Espinoza
Update RC control methods, add change_ip for RC, fix win_reference for sub-baudio...
r236 last = 0
Fiorella Quino
import/export functions have been updated...
r243 for tup in values:
vals = pack('<HH', last^tup[0], tup[1])
Juan C. Espinoza
Update RC control methods, add change_ip for RC, fix win_reference for sub-baudio...
r236 last = tup[0]
Fiorella Quino
import/export functions have been updated...
r243 data.extend((133, vals[1], 132, vals[0], 133, vals[3], 132, vals[2]))
Juan C. Espinoza
Update RC control methods, add change_ip for RC, fix win_reference for sub-baudio...
r236 #enable
data.extend((129, 1))
Fiorella Quino
import/export functions have been updated...
r243
Juan C. Espinoza
Update Views y several improvements
r316 if raw:
return b64encode(data)
Juan C. Espinoza
Update RC model, RC api for testing...
r185 try:
SIR with docker-compose working
r299 payload = self.request('stop', 'post')
payload = self.request('reset', 'post')
#payload = self.request('divider', 'post', data={'divider': self.clock_divider-1})
#payload = self.request('write', 'post', data=b64encode(bytearray((139, 62))), timeout=20)
n = len(data)
x = 0
#while x < n:
Fiorella Quino
RC files have been updated...
r264 payload = self.request('write', 'post', data=b64encode(data))
SIR with docker-compose working
r299 # x += 1024
Juan C. Espinoza
Update RC API methods...
r222 if payload['write']=='ok':
Fiorella Quino
RC files have been updated...
r264 self.device.status = 3
Juan C. Espinoza
Update RC model, RC api for testing...
r185 self.device.save()
Limpieza de código y funcionalidades usrp
r346 self.message = 'USRP Rx configured and started'
Juan C. Espinoza
Update RC model, RC api for testing...
r185 else:
Juan C. Espinoza
Update RC control methods, add change_ip for RC, fix win_reference for sub-baudio...
r236 self.device.status = 1
Juan C. Espinoza
Update RC model, RC api for testing...
r185 self.device.save()
Limpieza de código y funcionalidades usrp
r346 self.message = 'USRP Rx write: {}'.format(payload['write'])
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return False
Fiorella Quino
import/export functions have been updated...
r243
SIR with docker-compose working
r299 #payload = self.request('start', 'post')
Juan C. Espinoza
Update RC model, RC api for testing...
r185 except Exception as e:
Juan C. Espinoza
Update RC API methods...
r222 if 'No route to host' not in str(e):
self.device.status = 4
else:
self.device.status = 0
Limpieza de código y funcionalidades usrp
r346 self.message = 'USRP Rx write: {}'.format(str(e))
Juan C. Espinoza
Update RC API methods...
r222 self.device.save()
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return False
Fiorella Quino
import/export functions have been updated...
r243
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return True
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172
Fiorella Quino
RC files have been updated...
r264 def get_absolute_url_import(self):
Primer commit radarsys_met
r345 return reverse('url_import_usrp_rx_conf', args=[str(self.id)])
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172
Juan C. Espinoza
Add compatibility with embed CGS in RC
r328