@@ -8,5 +8,5 DB_PASSWORD=docker | |||||
8 | PGDATA=/var/lib/postgresql/data |
|
8 | PGDATA=/var/lib/postgresql/data | |
9 | LC_ALL=C.UTF-8 |
|
9 | LC_ALL=C.UTF-8 | |
10 | TZ=America/Lima |
|
10 | TZ=America/Lima | |
11 |
DOCKER_DATA=/ |
|
11 | DOCKER_DATA=/data/dockers/radarsys/ | |
12 | LOCAL_IP=192.168.1.128 |
|
12 | LOCAL_IP=192.168.1.128 |
@@ -74,15 +74,14 def jars_conf_edit(request, id_conf): | |||||
74 | if filter_form.is_valid(): |
|
74 | if filter_form.is_valid(): | |
75 | jars_filter = filter_form.cleaned_data |
|
75 | jars_filter = filter_form.cleaned_data | |
76 | jars_filter['id'] = request.POST['filter_template'] |
|
76 | jars_filter['id'] = request.POST['filter_template'] | |
|
77 | if form.is_valid(): | |||
|
78 | conf = form.save(commit=False) | |||
|
79 | conf.filter_parms = json.dumps(jars_filter) | |||
|
80 | conf.save() | |||
|
81 | return redirect('url_jars_conf', id_conf=conf.id) | |||
77 | else: |
|
82 | else: | |
78 | messages.error(request, filter_form.errors) |
|
83 | messages.error(request, filter_form.errors) | |
79 |
|
84 | |||
80 | if form.is_valid(): |
|
|||
81 | conf = form.save(commit=False) |
|
|||
82 | conf.filter_parms = json.dumps(jars_filter) |
|
|||
83 | conf.save() |
|
|||
84 | return redirect('url_jars_conf', id_conf=conf.id) |
|
|||
85 |
|
||||
86 | kwargs = {} |
|
85 | kwargs = {} | |
87 |
|
86 | |||
88 | kwargs['id_dev'] = conf.id |
|
87 | kwargs['id_dev'] = conf.id |
@@ -105,6 +105,7 class RCConfigurationForm(forms.ModelForm): | |||||
105 | class RCMixConfigurationForm(forms.Form): |
|
105 | class RCMixConfigurationForm(forms.Form): | |
106 |
|
106 | |||
107 | clock_in = forms.CharField(widget=forms.HiddenInput()) |
|
107 | clock_in = forms.CharField(widget=forms.HiddenInput()) | |
|
108 | frequency = forms.CharField(widget=forms.HiddenInput()) | |||
108 | clock_divider = forms.CharField(widget=forms.HiddenInput()) |
|
109 | clock_divider = forms.CharField(widget=forms.HiddenInput()) | |
109 | name = forms.CharField() |
|
110 | name = forms.CharField() | |
110 | experiment = forms.ChoiceField() |
|
111 | experiment = forms.ChoiceField() | |
@@ -134,6 +135,7 class RCMixConfigurationForm(forms.Form): | |||||
134 | self.fields['experiment'].choices = [(conf.pk, '{} | {}'.format(conf.pk, conf.name)) for conf in confs] |
|
135 | self.fields['experiment'].choices = [(conf.pk, '{} | {}'.format(conf.pk, conf.name)) for conf in confs] | |
135 | self.fields['delay'].widget = KmUnitWidget(attrs = {'km2unit':km2unit}) |
|
136 | self.fields['delay'].widget = KmUnitWidget(attrs = {'km2unit':km2unit}) | |
136 | self.fields['clock_in'].initial = clock_in |
|
137 | self.fields['clock_in'].initial = clock_in | |
|
138 | self.fields['frequency'].initial = clock_in | |||
137 | self.fields['clock_divider'].initial = clock_divider |
|
139 | self.fields['clock_divider'].initial = clock_divider | |
138 |
|
140 | |||
139 |
|
141 | |||
@@ -415,4 +417,4 class RCClockForm(forms.ModelForm): | |||||
415 | elif form_data['reference']==1 and not 60<=form_data['multiplier']<=90: |
|
417 | elif form_data['reference']==1 and not 60<=form_data['multiplier']<=90: | |
416 | self.add_error('multiplier', 'For 10MHz, valid values are between 60 and 90') |
|
418 | self.add_error('multiplier', 'For 10MHz, valid values are between 60 and 90') | |
417 |
|
419 | |||
418 | return form_data No newline at end of file |
|
420 | return form_data |
@@ -553,14 +553,17 class RCConfiguration(Configuration): | |||||
553 | data = {'default': clock.frequency} |
|
553 | data = {'default': clock.frequency} | |
554 | else: |
|
554 | else: | |
555 | data = {'manual': [clock.multiplier, clock.divisor, clock.reference]} |
|
555 | data = {'manual': [clock.multiplier, clock.divisor, clock.reference]} | |
556 | payload = self.request('setfreq', 'post', data=json.dumps(data)) |
|
556 | try: | |
557 | if payload['command'] <> 'ok': |
|
557 | payload = self.request('setfreq', 'post', data=json.dumps(data)) | |
558 |
|
|
558 | if payload['command'] <> 'ok': | |
559 | else: |
|
559 | self.message = 'RC write: {}'.format(payload['command']) | |
560 | self.message = payload['programming'] |
|
560 | else: | |
561 |
|
|
561 | self.message = payload['programming'] | |
562 | self.message = 'RC write: error programming CGS chip' |
|
562 | if payload['programming'] == 'fail': | |
563 |
|
563 | self.message = 'RC write: error programming CGS chip' | ||
|
564 | except Exception as e: | |||
|
565 | self.message = 'RC Write: No CGS found {}'.format(e) | |||
|
566 | # return False | |||
564 | values = [] |
|
567 | values = [] | |
565 | for pulse, delay in zip(self.get_pulses(), self.get_delays()): |
|
568 | for pulse, delay in zip(self.get_pulses(), self.get_delays()): | |
566 | while delay>65536: |
|
569 | while delay>65536: | |
@@ -867,7 +870,7 class RCLine(models.Model): | |||||
867 | params = json.loads(self.params) |
|
870 | params = json.loads(self.params) | |
868 | n = ipp_u*ntx |
|
871 | n = ipp_u*ntx | |
869 | if params['invert'] in ('1', 1): |
|
872 | if params['invert'] in ('1', 1): | |
870 |
y = [(n- |
|
873 | y = [(n-2, n)] | |
871 | else: |
|
874 | else: | |
872 | y = [(0, 1)] |
|
875 | y = [(0, 1)] | |
873 |
|
876 | |||
@@ -927,7 +930,7 class RCLine(models.Model): | |||||
927 | if mask[self.channel] in ('0', '', ' '): |
|
930 | if mask[self.channel] in ('0', '', ' '): | |
928 | continue |
|
931 | continue | |
929 | Y = confs[i].get_lines(channel=self.channel)[0].pulses_as_array() |
|
932 | Y = confs[i].get_lines(channel=self.channel)[0].pulses_as_array() | |
930 | delay = float(delays[i])*km2unit |
|
933 | delay = int(float(delays[i])*km2unit) | |
931 |
|
934 | |||
932 | if modes[i]=='P': |
|
935 | if modes[i]=='P': | |
933 | if delay>0: |
|
936 | if delay>0: | |
@@ -1024,4 +1027,4 class RCClock(models.Model): | |||||
1024 | multiplier = models.PositiveIntegerField(default=60) |
|
1027 | multiplier = models.PositiveIntegerField(default=60) | |
1025 | divisor = models.PositiveIntegerField(default=10) |
|
1028 | divisor = models.PositiveIntegerField(default=10) | |
1026 | reference = models.PositiveSmallIntegerField(default=1, choices=((0, 'Internal (25MHz)'), (1, 'External (10MHz)'))) |
|
1029 | reference = models.PositiveSmallIntegerField(default=1, choices=((0, 'Internal (25MHz)'), (1, 'External (10MHz)'))) | |
1027 | frequency = models.FloatField(default=60.0) No newline at end of file |
|
1030 | frequency = models.FloatField(default=60.0) |
@@ -111,14 +111,19 def conf_edit(request, conf_id): | |||||
111 |
|
111 | |||
112 | #update lines fields |
|
112 | #update lines fields | |
113 | extras.sort() |
|
113 | extras.sort() | |
|
114 | xxs = {} | |||
114 | for label in extras: |
|
115 | for label in extras: | |
115 | x, pk, name = label.split('|') |
|
116 | x, pk, name = label.split('|') | |
116 | if pk not in line_data: |
|
117 | if pk not in line_data: | |
117 | line_data[pk] = {} |
|
118 | line_data[pk] = {} | |
118 | if 'params' not in line_data[pk]: |
|
119 | if 'params' not in line_data[pk]: | |
119 | line_data[pk]['params'] = [] |
|
120 | line_data[pk]['params'] = [] | |
120 | if len(line_data[pk]['params'])<int(x)+1: |
|
121 | xxs[pk] = [] | |
|
122 | if x not in xxs[pk]: | |||
121 | line_data[pk]['params'].append({}) |
|
123 | line_data[pk]['params'].append({}) | |
|
124 | xxs[pk].append(x) | |||
|
125 | for label in extras: | |||
|
126 | x, pk, name = label.split('|') | |||
122 | line_data[pk]['params'][int(x)][name] = float(request.POST[label]) |
|
127 | line_data[pk]['params'][int(x)][name] = float(request.POST[label]) | |
123 |
|
128 | |||
124 | for pk, params in line_data.items(): |
|
129 | for pk, params in line_data.items(): | |
@@ -417,4 +422,4 def plot_pulses2(request, conf_id): | |||||
417 | def conf_raw(request, conf_id): |
|
422 | def conf_raw(request, conf_id): | |
418 | conf = get_object_or_404(RCConfiguration, pk=conf_id) |
|
423 | conf = get_object_or_404(RCConfiguration, pk=conf_id) | |
419 | raw = conf.write_device(raw=True) |
|
424 | raw = conf.write_device(raw=True) | |
420 | return HttpResponse(raw, content_type='application/json') No newline at end of file |
|
425 | return HttpResponse(raw, content_type='application/json') |
@@ -1,42 +1,44 | |||||
1 | version: '2' |
|
1 | version: '2' | |
2 | services: |
|
2 | services: | |
3 | # Django app |
|
3 | # Django app | |
4 | web: |
|
4 | # web: | |
5 |
|
|
5 | # container_name: 'radarsys' | |
6 |
|
|
6 | # build: . | |
7 |
|
|
7 | # restart: always | |
8 |
|
|
8 | # image: radarsys | |
9 |
|
|
9 | # command: gunicorn radarsys.wsgi:application -w 2 -b :8000 | |
10 | # command: python manage.py runserver 0.0.0.0:8030 |
|
10 | # # command: python manage.py runserver 0.0.0.0:8030 | |
11 | # ports: |
|
11 | # # ports: | |
12 | # - 8030:8030 |
|
12 | # # - 8030:8030 | |
13 |
|
|
13 | # env_file: .env | |
14 |
|
14 | |||
15 | links: |
|
15 | # links: | |
16 |
|
|
16 | # - redis | |
17 |
|
|
17 | # - postgres | |
18 | volumes: |
|
18 | # volumes: | |
19 |
|
|
19 | # - './:/radarsys' | |
20 |
|
|
20 | # - '${DOCKER_DATA}/static:/radarsys/static' | |
21 | depends_on: |
|
21 | # depends_on: | |
22 |
|
|
22 | # - redis | |
23 |
|
|
23 | # - postgres | |
24 |
|
24 | |||
25 | redis: |
|
25 | redis: | |
26 | container_name: 'radarsys-redis' |
|
26 | container_name: 'radarsys-redis' | |
27 | image: 'redis:3.2-alpine' |
|
27 | image: 'redis:3.2-alpine' | |
28 | volumes: |
|
28 | volumes: | |
29 | - '${DOCKER_DATA}/redis:/data' |
|
29 | - '${DOCKER_DATA}/redis:/data' | |
|
30 | ports: | |||
|
31 | - 6300:6379 | |||
30 |
|
32 | |||
31 | celery_worker: |
|
33 | celery_worker: | |
32 | container_name: 'radarsys-celery' |
|
34 | container_name: 'radarsys-celery' | |
33 | image: radarsys |
|
35 | image: radarsys | |
34 | env_file: .env |
|
36 | env_file: .env | |
35 | command: celery -A radarsys worker -l info |
|
37 | command: celery -A radarsys worker -l info | |
36 | volumes_from: |
|
38 | # volumes_from: | |
37 | - web |
|
39 | # - web | |
38 | depends_on: |
|
40 | # depends_on: | |
39 | - web |
|
41 | # - web | |
40 |
|
42 | |||
41 | # PostgreSQL |
|
43 | # PostgreSQL | |
42 | postgres: |
|
44 | postgres: | |
@@ -45,23 +47,23 services: | |||||
45 | volumes: |
|
47 | volumes: | |
46 | - ./postgres/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d |
|
48 | - ./postgres/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d | |
47 | - pgdata:/var/lib/postgresql/data |
|
49 | - pgdata:/var/lib/postgresql/data | |
48 |
|
|
50 | ports: | |
49 |
|
|
51 | - 5400:5432 | |
50 | env_file: .env |
|
52 | env_file: .env | |
51 |
|
53 | |||
52 | # Web Server |
|
54 | # Web Server | |
53 | nginx: |
|
55 | # nginx: | |
54 | container_name: 'radarsys-nginx' |
|
56 | # container_name: 'radarsys-nginx' | |
55 | restart: always |
|
57 | # restart: always | |
56 | build: ./nginx/ |
|
58 | # build: ./nginx/ | |
57 | ports: |
|
59 | # ports: | |
58 | - '8030:8030' |
|
60 | # - '8030:8030' | |
59 | volumes_from: |
|
61 | # volumes_from: | |
60 | - web |
|
62 | # - web | |
61 | links: |
|
63 | # links: | |
62 | - web:web |
|
64 | # - web:web | |
63 | depends_on: |
|
65 | # depends_on: | |
64 | - web |
|
66 | # - web | |
65 |
|
67 | |||
66 | volumes: |
|
68 | volumes: | |
67 | pgdata: |
|
69 | pgdata: |
General Comments 0
You need to be logged in to leave comments.
Login now