@@ -0,0 +1,110 | |||||
|
1 | [ | |||
|
2 | { | |||
|
3 | "code" : 100, | |||
|
4 | "name" : "HF JRO" | |||
|
5 | }, | |||
|
6 | { | |||
|
7 | "code" : 101, | |||
|
8 | "name" : "HF Huancayo" | |||
|
9 | }, | |||
|
10 | { | |||
|
11 | "code" : 102, | |||
|
12 | "name" : "HF Ica" | |||
|
13 | }, | |||
|
14 | { | |||
|
15 | "code" : 110, | |||
|
16 | "name" : "ISR EW Drifts" | |||
|
17 | }, | |||
|
18 | { | |||
|
19 | "code" : 111, | |||
|
20 | "name" : "ISR Faraday" | |||
|
21 | }, | |||
|
22 | { | |||
|
23 | "code" : 112, | |||
|
24 | "name" : "ISR Imaging" | |||
|
25 | }, | |||
|
26 | { | |||
|
27 | "code" : 120, | |||
|
28 | "name" : "Faraday" | |||
|
29 | }, | |||
|
30 | { | |||
|
31 | "code" : 121, | |||
|
32 | "name" : "Faraday Long Pulse" | |||
|
33 | }, | |||
|
34 | { | |||
|
35 | "code" : 122, | |||
|
36 | "name" : "Faraday Codded LP" | |||
|
37 | }, | |||
|
38 | { | |||
|
39 | "code" : 123, | |||
|
40 | "name" : "Faraday Double Pulse" | |||
|
41 | }, | |||
|
42 | { | |||
|
43 | "code" : 124, | |||
|
44 | "name" : "Faraday AC" | |||
|
45 | }, | |||
|
46 | { | |||
|
47 | "code" : 125, | |||
|
48 | "name" : "Faraday Differential Phase" | |||
|
49 | }, | |||
|
50 | { | |||
|
51 | "code" : 150, | |||
|
52 | "name" : "JASMET 50" | |||
|
53 | }, | |||
|
54 | { | |||
|
55 | "code" : 151, | |||
|
56 | "name" : "JASMET 30" | |||
|
57 | }, | |||
|
58 | { | |||
|
59 | "code" : 170, | |||
|
60 | "name" : "BLTR Huancayo" | |||
|
61 | }, | |||
|
62 | { | |||
|
63 | "code" : 171, | |||
|
64 | "name" : "CIRI Huancayo" | |||
|
65 | }, | |||
|
66 | { | |||
|
67 | "code" : 172, | |||
|
68 | "name" : "CLAIRE Huancayo" | |||
|
69 | }, | |||
|
70 | { | |||
|
71 | "code" : 180, | |||
|
72 | "name" : "MST" | |||
|
73 | }, | |||
|
74 | { | |||
|
75 | "code" : 181, | |||
|
76 | "name" : "ISR" | |||
|
77 | }, | |||
|
78 | { | |||
|
79 | "code" : 182, | |||
|
80 | "name" : "EEJ" | |||
|
81 | }, | |||
|
82 | { | |||
|
83 | "code" : 190, | |||
|
84 | "name" : "JULIA 150km (Natalia)" | |||
|
85 | }, | |||
|
86 | { | |||
|
87 | "code" : 191, | |||
|
88 | "name" : "JULIA SpreadF (Natalia)" | |||
|
89 | }, | |||
|
90 | { | |||
|
91 | "code" : 200, | |||
|
92 | "name" : "JULIA 150km" | |||
|
93 | }, | |||
|
94 | { | |||
|
95 | "code" : 201, | |||
|
96 | "name" : "JULIA EEJ" | |||
|
97 | }, | |||
|
98 | { | |||
|
99 | "code" : 202, | |||
|
100 | "name" : "JULIA SpreadF" | |||
|
101 | }, | |||
|
102 | { | |||
|
103 | "code" : 203, | |||
|
104 | "name" : "JULIA Imaging" | |||
|
105 | }, | |||
|
106 | { | |||
|
107 | "code" : 203, | |||
|
108 | "name" : "JULIA Bistatic" | |||
|
109 | } | |||
|
110 | ] No newline at end of file |
@@ -6,7 +6,7 | |||||
6 | g++ \ |
|
6 | g++ \ | |
7 | gcc \ |
|
7 | gcc \ | |
8 | && pip install -r requirements.txt \ |
|
8 | && pip install -r requirements.txt \ | |
9 | && apt-get purge -y --auto-remove gcc g++\ |
|
9 | && apt-get purge -y --auto-remove gcc g++ \ | |
10 | && rm -rf /var/lib/apt/lists/* |
|
10 | && rm -rf /var/lib/apt/lists/* | |
11 | COPY . /app/ |
|
11 | COPY . /app/ | |
12 | No newline at end of file |
|
12 |
@@ -22,7 +22,7 services: | |||||
22 | container_name: 'zmq_server' |
|
22 | container_name: 'zmq_server' | |
23 | image: 'realtime' |
|
23 | image: 'realtime' | |
24 | ports: |
|
24 | ports: | |
25 |
- ' |
|
25 | - '4444:4444' | |
26 | command: 'python -u scripts/server.py' |
|
26 | command: 'python -u scripts/server.py' | |
27 | env_file: .env |
|
27 | env_file: .env | |
28 | links: |
|
28 | links: |
@@ -1,12 +1,10 | |||||
1 | import os |
|
1 | import os | |
2 | import json |
|
2 | import json | |
3 | import numpy as np |
|
3 | ||
4 | from datetime import datetime |
|
4 | from datetime import datetime | |
5 |
|
5 | |||
6 | from pymongo import MongoClient |
|
6 | from pymongo import MongoClient | |
7 |
|
7 | |||
8 | from models import Experiment, Data |
|
|||
9 |
|
||||
10 | from channels.handler import AsgiHandler |
|
8 | from channels.handler import AsgiHandler | |
11 | from channels.auth import channel_session_user |
|
9 | from channels.auth import channel_session_user | |
12 | from channels import Group |
|
10 | from channels import Group | |
@@ -17,32 +15,35 DB = CLIENT['dbplots'] | |||||
17 |
|
15 | |||
18 | # Connected to websocket.connect |
|
16 | # Connected to websocket.connect | |
19 | def ws_connect(message, code, plot): |
|
17 | def ws_connect(message, code, plot): | |
20 | # Accept the incoming connection |
|
|||
21 | message.reply_channel.send({'accept': True}) |
|
18 | message.reply_channel.send({'accept': True}) | |
22 | # Add them to the chat group |
|
19 | pk = message.content['query_string'].split('=')[1] | |
23 |
Group('{}_{}'.format( |
|
20 | Group('{}_{}'.format(pk, plot)).add(message.reply_channel) | |
|
21 | print('New connection from: {}, creating Group: {}_{}'.format(message.content['client'][0], pk, plot)) | |||
24 |
|
22 | |||
25 | def ws_message(message, code, plot): |
|
23 | def ws_message(message, code, plot): | |
26 | # Accept the incoming connection |
|
24 | # Accept the incoming connection | |
27 |
|
25 | print 'incoming message' | ||
28 | dt = datetime.strptime(str(json.loads(message.content['text'])['date']), '%d/%m/%Y') |
|
26 | dt = datetime.strptime(str(json.loads(message.content['text'])['date']), '%d/%m/%Y') | |
29 |
e = DB.exp |
|
27 | exp = DB.exp_meta.find_one({'code': int(code), 'date': dt}) | |
30 |
|
|
28 | print exp | |
|
29 | if exp: | |||
31 | if plot == 'spc': |
|
30 | if plot == 'spc': | |
32 |
datas = DB.data.find({'exp |
|
31 | datas = DB.exp_data.find({'expmeta': exp['_id']}, ['time', 'data']).sort('time', -1).limit(1)[0] | |
33 | e['time'] = [datas['time']] |
|
32 | exp['time'] = [datas['time']] | |
34 | e['spc'] = datas['data']['spc'] |
|
33 | exp['spc'] = datas['data']['spc'] | |
35 | e['rti'] = datas['data']['rti'] |
|
34 | exp['rti'] = datas['data']['rti'] | |
36 | e['noise'] = datas['data']['noise'] |
|
35 | exp['noise'] = datas['data']['noise'] | |
37 | else: |
|
36 | else: | |
38 |
datas = DB.data.find({'exp |
|
37 | datas = DB.exp_data.find({'expmeta': exp['_id']}, ['time', 'data']).sort('time', 1) | |
|
38 | print 'Counting...' | |||
|
39 | print datas.count() | |||
39 | dum = [(d['time'], d['data'][plot]) for d in datas] |
|
40 | dum = [(d['time'], d['data'][plot]) for d in datas] | |
40 | e['time'] = [d[0] for d in dum] |
|
41 | exp['time'] = [d[0] for d in dum] | |
41 | dum = [d[1] for d in dum] |
|
42 | dum = [d[1] for d in dum] | |
42 | e[plot] = map(list, zip(*dum)) |
|
43 | exp[plot] = map(list, zip(*dum)) | |
43 | e.pop('date', None) |
|
44 | exp.pop('date', None) | |
44 | e.pop('_id', None) |
|
45 | exp.pop('_id', None) | |
45 | message.reply_channel.send({'text': json.dumps(e)}) |
|
46 | message.reply_channel.send({'text': json.dumps(exp)}) | |
46 | else: |
|
47 | else: | |
47 | message.reply_channel.send({'text': json.dumps({'interval': 0})}) |
|
48 | message.reply_channel.send({'text': json.dumps({'interval': 0})}) | |
48 |
|
49 |
@@ -5,27 +5,29 from django.db import models | |||||
5 | from mongoengine import * |
|
5 | from mongoengine import * | |
6 |
|
6 | |||
7 | class Experiment(Document): |
|
7 | class Experiment(Document): | |
|
8 | code = IntField(unique=True) | |||
|
9 | name = StringField(max_length=40) | |||
|
10 | ||||
|
11 | class ExpMeta(Document): | |||
8 | code = IntField() |
|
12 | code = IntField() | |
9 | name = StringField(max_length=40, default='Experiment') |
|
|||
10 | date = DateTimeField() |
|
13 | date = DateTimeField() | |
11 | pairs = ListField(default=list) |
|
14 | pairs = ListField(default=list) | |
12 | yrange = ListField(FloatField()) |
|
15 | yrange = ListField(FloatField()) | |
13 | xrange = ListField(FloatField()) |
|
16 | xrange = ListField(FloatField()) | |
14 | interval = FloatField() |
|
17 | interval = FloatField() | |
|
18 | plots = ListField(StringField()) | |||
15 | localtime = BooleanField() |
|
19 | localtime = BooleanField() | |
16 |
|
20 | |||
17 | meta = { |
|
21 | meta = { | |
18 | 'indexes': [[("code", 1), ("date", 1)]] |
|
22 | 'indexes': [[("code", 1), ("date", 1)]] | |
19 | } |
|
23 | } | |
20 |
|
24 | |||
21 | class Data(Document): |
|
25 | class ExpData(Document): | |
22 |
exp |
|
26 | expmeta = LazyReferenceField(ExpMeta) | |
23 | time = FloatField() |
|
27 | time = FloatField() | |
24 | data = DictField() |
|
28 | data = DictField() | |
25 |
|
29 | |||
26 | meta = { |
|
30 | meta = { | |
27 |
'indexes': ["exp |
|
31 | 'indexes': ["expmeta", "+time"] | |
28 | } |
|
32 | } | |
29 |
|
33 | |||
30 | # connect('dbplots') |
|
|||
31 | # Experiment.drop_collection() |
|
@@ -371,7 +371,7 class Scatter{ | |||||
371 | last = last+interval; |
|
371 | last = last+interval; | |
372 | x.push(last); |
|
372 | x.push(last); | |
373 | for (var j = 0; j < N; j++){ |
|
373 | for (var j = 0; j < N; j++){ | |
374 |
|
|
374 | y[j].push(null); | |
375 | } |
|
375 | } | |
376 | // Avoid infinite loop |
|
376 | // Avoid infinite loop | |
377 | if (cnt==100){break;} |
|
377 | if (cnt==100){break;} |
@@ -80,7 +80,9 | |||||
80 | document.location = '/' + $("#id_experiment").val() + '/' + $("#id_plot").val() + '/?date=' + $("#id_date").val(); |
|
80 | document.location = '/' + $("#id_experiment").val() + '/' + $("#id_plot").val() + '/?date=' + $("#id_date").val(); | |
81 | }); |
|
81 | }); | |
82 |
|
82 | |||
83 | var socket = new WebSocket('ws://' + window.location.host + '/{{code}}/{{plot}}/'); |
|
83 | {% if date %} | |
|
84 | $("#loader").css("display", "block"); | |||
|
85 | var socket = new WebSocket('ws://' + window.location.host + '/{{code}}/{{plot}}/?' + 'pk={{id}}'); | |||
84 | socket.onopen = function open() { |
|
86 | socket.onopen = function open() { | |
85 | console.log('WebSockets connection created.'); |
|
87 | console.log('WebSockets connection created.'); | |
86 | {% if date %} |
|
88 | {% if date %} | |
@@ -92,13 +94,14 | |||||
92 |
|
94 | |||
93 | socket.onmessage = function message(event) { |
|
95 | socket.onmessage = function message(event) { | |
94 | var data = JSON.parse(event.data); |
|
96 | var data = JSON.parse(event.data); | |
|
97 | console.log(data); | |||
95 | if (data.interval == 0) { |
|
98 | if (data.interval == 0) { | |
96 | $("#loader").removeClass("loader").addClass("no-data"); |
|
99 | $("#loader").removeClass("loader").addClass("no-data"); | |
97 | $("#loader").html("No data found"); |
|
100 | $("#loader").html("No data found"); | |
98 | } else { |
|
101 | } else { | |
99 | var first = plot(data); |
|
102 | var first = plot(data); | |
100 |
if (first == true) { |
|
103 | if (first == true) { | |
101 |
$("#loader").css("display", "none"); |
|
104 | $("#loader").css("display", "none"); | |
102 | } |
|
105 | } | |
103 | } |
|
106 | } | |
104 | } |
|
107 | } | |
@@ -106,6 +109,9 | |||||
106 | if (socket.readyState == WebSocket.OPEN) { |
|
109 | if (socket.readyState == WebSocket.OPEN) { | |
107 | socket.onopen(); |
|
110 | socket.onopen(); | |
108 | } |
|
111 | } | |
|
112 | {% else %} | |||
|
113 | $("#loader").css("display", "none"); | |||
|
114 | {% endif %} | |||
109 | </script> {% block script %}{% endblock script %} |
|
115 | </script> {% block script %}{% endblock script %} | |
110 | </body> |
|
116 | </body> | |
111 |
|
117 |
@@ -11,12 +11,12 from django.shortcuts import render | |||||
11 |
|
11 | |||
12 | from bootstrap3_datetime.widgets import DateTimePicker |
|
12 | from bootstrap3_datetime.widgets import DateTimePicker | |
13 |
|
13 | |||
14 | from pymongo import MongoClient |
|
14 | import mongoengine | |
15 |
|
15 | |||
16 | host = os.environ.get('HOST_MONGO', 'localhost') |
|
16 | from plotter.models import Experiment, ExpMeta | |
17 |
|
17 | |||
18 | CLIENT = MongoClient('{}:27017'.format(host)) |
|
18 | host = os.environ.get('HOST_MONGO', 'localhost') | |
19 | DB = CLIENT['dbplots'] |
|
19 | mongoengine.connect('dbplots', host=host, port=27017) | |
20 |
|
20 | |||
21 | # Forms |
|
21 | # Forms | |
22 | class SearchForm(forms.Form): |
|
22 | class SearchForm(forms.Form): | |
@@ -47,27 +47,30 def main(request, code=None, plot=None): | |||||
47 | if plot is not None: |
|
47 | if plot is not None: | |
48 | initial['plot'] = plot |
|
48 | initial['plot'] = plot | |
49 |
|
49 | |||
50 | print 'hola' |
|
50 | exps = [(q['code'], q['name']) for q in Experiment.objects.all()] | |
51 | codes = DB.experiment.find().distinct('code') |
|
51 | ||
52 | print codes |
|
|||
53 | exps = [DB.experiment.find_one({'code': c}, ['name']) for c in codes] |
|
|||
54 | print exps |
|
|||
55 | names = [q['name'] for q in exps] |
|
|||
56 | print names |
|
|||
57 | form = SearchForm( |
|
52 | form = SearchForm( | |
58 | initial = initial, |
|
53 | initial = initial, | |
59 |
exp_choices = [(e[0], e[1]) for e in |
|
54 | exp_choices = [(e[0], e[1]) for e in exps] | |
60 | ) |
|
55 | ) | |
61 |
|
56 | |||
|
57 | try: | |||
|
58 | exp = ExpMeta.objects.get(code=int(code), date=datetime.strptime(date, '%d/%m/%Y')) | |||
|
59 | exp_id = exp.id | |||
|
60 | except: | |||
|
61 | exp_id = 0 | |||
|
62 | ||||
|
63 | ||||
62 | kwargs = { |
|
64 | kwargs = { | |
63 | 'code': code, |
|
65 | 'code': code, | |
64 | 'plot': plot, |
|
66 | 'plot': plot, | |
65 | 'date': date, |
|
67 | 'date': date, | |
66 | 'form': form, |
|
68 | 'form': form, | |
|
69 | 'id': exp_id | |||
67 | } |
|
70 | } | |
68 |
|
71 | |||
69 |
if code and |
|
72 | if code and exps: | |
70 |
kwargs['title'] = [t[1] for t in |
|
73 | kwargs['title'] = [t[1] for t in exps if t[0]==int(code)][0] | |
71 | else: |
|
74 | else: | |
72 | kwargs['title'] = 'JRO' |
|
75 | kwargs['title'] = 'JRO' | |
73 |
|
76 |
@@ -5,4 +5,4 channel_routing = [ | |||||
5 | route("websocket.connect", ws_connect, path=r'^/(?P<code>[0-9]+)/(?P<plot>[a-z]+)/$'), |
|
5 | route("websocket.connect", ws_connect, path=r'^/(?P<code>[0-9]+)/(?P<plot>[a-z]+)/$'), | |
6 | route("websocket.receive", ws_message, path=r'^/(?P<code>[0-9]+)/(?P<plot>[a-z]+)/$'), |
|
6 | route("websocket.receive", ws_message, path=r'^/(?P<code>[0-9]+)/(?P<plot>[a-z]+)/$'), | |
7 | route("websocket.disconnect", ws_disconnect, path=r'^/(?P<code>[0-9]+)/(?P<plot>[a-z]+)/$'), |
|
7 | route("websocket.disconnect", ws_disconnect, path=r'^/(?P<code>[0-9]+)/(?P<plot>[a-z]+)/$'), | |
8 | ] No newline at end of file |
|
8 | ] |
@@ -122,7 +122,7 USE_TZ = True | |||||
122 |
|
122 | |||
123 | STATIC_URL = '/static/' |
|
123 | STATIC_URL = '/static/' | |
124 |
|
124 | |||
125 |
host = os.environ.get('HOST_REDIS', ' |
|
125 | host = os.environ.get('HOST_REDIS', '127.0.0.1') | |
126 |
|
126 | |||
127 | CHANNEL_LAYERS = { |
|
127 | CHANNEL_LAYERS = { | |
128 | "default": { |
|
128 | "default": { |
@@ -4,7 +4,6 django-bootstrap3==9.1.0 | |||||
4 | django-bootstrap3-datetimepicker-2==2.5.0 |
|
4 | django-bootstrap3-datetimepicker-2==2.5.0 | |
5 | channels==1.1.8 |
|
5 | channels==1.1.8 | |
6 | mongoengine==0.15.0 |
|
6 | mongoengine==0.15.0 | |
7 | numpy==1.13.3 |
|
|||
8 | pymongo==3.5.1 |
|
7 | pymongo==3.5.1 | |
9 | pyzmq==16.0.3 |
|
8 | pyzmq==16.0.3 | |
10 | redis==2.10.6 |
|
9 | redis==2.10.6 |
@@ -1,5 +1,6 | |||||
1 | import os |
|
1 | import os | |
2 | import sys |
|
2 | import sys | |
|
3 | import json | |||
3 | import simplejson |
|
4 | import simplejson | |
4 | from datetime import datetime |
|
5 | from datetime import datetime | |
5 | import zmq |
|
6 | import zmq | |
@@ -10,8 +11,7 import mongoengine | |||||
10 | sys.path.append('/app') |
|
11 | sys.path.append('/app') | |
11 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "realtime.settings") |
|
12 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "realtime.settings") | |
12 |
|
13 | |||
13 | from plotter.models import Experiment, Data |
|
14 | from plotter.models import Experiment, ExpMeta, ExpData | |
14 |
|
||||
15 |
|
15 | |||
16 | host_mongo = os.environ.get('HOST_MONGO', 'localhost') |
|
16 | host_mongo = os.environ.get('HOST_MONGO', 'localhost') | |
17 | mongoengine.connect('dbplots', host=host_mongo, port=27017) |
|
17 | mongoengine.connect('dbplots', host=host_mongo, port=27017) | |
@@ -26,69 +26,59 receiver = context.socket(zmq.SUB) | |||||
26 | receiver.bind("tcp://0.0.0.0:4444") |
|
26 | receiver.bind("tcp://0.0.0.0:4444") | |
27 | receiver.setsockopt(zmq.SUBSCRIBE, '') |
|
27 | receiver.setsockopt(zmq.SUBSCRIBE, '') | |
28 |
|
28 | |||
29 |
|
29 | def loaddata(): | ||
30 |
|
30 | print('Loading Experiments...') | ||
31 | def update_db(buffer): |
|
31 | for tup in json.load(open('scripts/experiments.json')): | |
32 | dt = datetime.utcfromtimestamp(buffer['time']) |
|
32 | print(tup['name']) | |
33 |
exp = Experiment.objects(code= |
|
33 | exp = Experiment.objects(code=tup['code']).modify( | |
34 | if exp is None: |
|
34 | upsert=True, | |
35 | exp = Experiment( |
|
35 | new=True, | |
36 |
code= |
|
36 | set__code=tup['code'], | |
37 |
|
|
37 | set__name=tup['name'], | |
38 | yrange = buffer['yrange'], |
|
|||
39 | xrange = buffer['xrange'], |
|
|||
40 | interval = buffer['interval'], |
|
|||
41 | localtime = buffer['localtime'], |
|
|||
42 | name = buffer['name'], |
|
|||
43 | ) |
|
38 | ) | |
44 | exp.save() |
|
39 | exp.save() | |
|
40 | ||||
|
41 | def update(buffer): | |||
|
42 | dt = datetime.utcfromtimestamp(buffer['time']) | |||
|
43 | exp = ExpMeta.objects(code=buffer['exp_code'], date=dt.date()).modify( | |||
|
44 | upsert=True, | |||
|
45 | new=True, | |||
|
46 | set__code=buffer['exp_code'], | |||
|
47 | set__date=dt.date(), | |||
|
48 | set__yrange = buffer['yrange'], | |||
|
49 | set__xrange = buffer['xrange'], | |||
|
50 | set__interval = buffer['interval'], | |||
|
51 | set__localtime = buffer['localtime'], | |||
|
52 | set__plots = buffer['data'].keys() | |||
|
53 | ) | |||
|
54 | exp.save() | |||
45 |
|
55 | |||
46 |
data = Data.objects(exp |
|
56 | data = ExpData.objects(expmeta=exp, time=buffer['time']).modify( | |
|
57 | upsert=True, | |||
|
58 | new=True, | |||
|
59 | set__expmeta = exp, | |||
|
60 | set__time = buffer['time'], | |||
|
61 | set__data = buffer['data'] | |||
|
62 | ) | |||
47 |
|
63 | |||
48 | if data is None: |
|
64 | data.save() | |
49 | data = Data( |
|
|||
50 | experiment = exp, |
|
|||
51 | time = buffer['time'], |
|
|||
52 | data = buffer['data'] |
|
|||
53 | ).save() |
|
|||
54 | new = True |
|
|||
55 | else: |
|
|||
56 | data.data = buffer['data'] |
|
|||
57 | data.save() |
|
|||
58 | new = False |
|
|||
59 |
|
65 | |||
60 |
return |
|
66 | return exp.id | |
61 | print 'Starting...' |
|
|||
62 | while True: |
|
|||
63 | buffer = receiver.recv_json() |
|
|||
64 | if 'xrange' not in buffer: |
|
|||
65 | buffer['xrange'] = [] |
|
|||
66 | if 'name' not in buffer: |
|
|||
67 | buffer['name'] = 'Experiment' |
|
|||
68 | if update_db(buffer): |
|
|||
69 | dum = buffer.copy() |
|
|||
70 | dum['time'] = [buffer['time']] |
|
|||
71 | dum['rti'] = buffer['data']['rti'] |
|
|||
72 | # dum['noise'] = buffer['data']['noise'] |
|
|||
73 | dum.pop('data') |
|
|||
74 | code = dum.pop('exp_code') |
|
|||
75 | channel.send_group(u'{}_rti'.format(code), {'text': simplejson.dumps(dum, ignore_nan=True)}) |
|
|||
76 | print 'Sending...{} - {} bytes'.format('rti', len(str(dum))) |
|
|||
77 |
|
67 | |||
78 | # dum = buffer.copy() |
|
68 | def main(): | |
79 | # dum['time'] = [buffer['time']] |
|
69 | print('Starting ZMQ server...') | |
80 | # dum['rti'] = buffer['data']['rti'] |
|
70 | while True: | |
81 | # dum['spc'] = buffer['data']['spc'] |
|
71 | buffer = receiver.recv_json() | |
82 | # dum['noise'] = buffer['data']['noise'] |
|
72 | code = update(buffer) | |
83 | # dum.pop('data') |
|
73 | for plot in buffer['data']: | |
84 | # code = dum.pop('exp_code') |
|
74 | dum = buffer.copy() | |
85 | # channel.send_group(u'{}_spc'.format(code), {'text': simplejson.dumps(dum, ignore_nan=True)}) |
|
75 | dum['time'] = [buffer['time']] | |
86 | # print 'Sending...{} - {} bytes'.format('spc', len(str(dum))) |
|
76 | dum[plot] = buffer['data'][plot] | |
|
77 | dum.pop('data') | |||
|
78 | dum.pop('exp_code') | |||
|
79 | channel.send_group(u'{}_{}'.format(code, plot), {'text': simplejson.dumps(dum, ignore_nan=True)}) | |||
|
80 | print('Sending...{} - {} bytes'.format(plot, len(str(dum)))) | |||
87 |
|
81 | |||
88 | # dum = buffer.copy() |
|
82 | if __name__=='__main__': | |
89 | # dum['time'] = [buffer['time']] |
|
83 | loaddata() | |
90 | # dum['noise'] = [[x] for x in buffer['data']['noise']] |
|
84 | main() No newline at end of file | |
91 | # dum.pop('data') |
|
|||
92 | # code = dum.pop('exp_code') |
|
|||
93 | # channel.send_group(u'{}_noise'.format(code), {'text': simplejson.dumps(dum, ignore_nan=True)}) |
|
|||
94 | # print 'Sending...{} - {} bytes'.format('noise', len(str(dum))) |
|
General Comments 0
You need to be logged in to leave comments.
Login now