##// END OF EJS Templates
Se agrego tabla "Radar" y Estados del Radar...
Fiorella Quino -
r49:95059da329ea
parent child
Show More
@@ -1,161 +1,180
1 from django.db import models
1 from django.db import models
2 from polymorphic import PolymorphicModel
2 from polymorphic import PolymorphicModel
3
3
4 from django.core.urlresolvers import reverse
4 from django.core.urlresolvers import reverse
5
5
6 CONF_STATES = (
6 CONF_STATES = (
7 (0, 'Disconnected'),
7 (0, 'Disconnected'),
8 (1, 'Connected'),
8 (1, 'Connected'),
9 (1, 'Running'),
9 (1, 'Running'),
10 )
10 )
11
11
12 CONF_TYPES = (
12 CONF_TYPES = (
13 (0, 'Active'),
13 (0, 'Active'),
14 (1, 'Historical'),
14 (1, 'Historical'),
15 )
15 )
16
16
17 DEV_STATES = (
17 DEV_STATES = (
18 (0, 'No connected'),
18 (0, 'No connected'),
19 (1, 'Connected'),
19 (1, 'Connected'),
20 (2, 'Configured'),
20 (2, 'Configured'),
21 (3, 'Running'),
21 (3, 'Running'),
22 )
22 )
23
23
24 DEV_TYPES = (
24 DEV_TYPES = (
25 ('', 'Select a device type'),
25 ('', 'Select a device type'),
26 ('rc', 'Radar Controller'),
26 ('rc', 'Radar Controller'),
27 ('dds', 'Direct Digital Synthesizer'),
27 ('dds', 'Direct Digital Synthesizer'),
28 ('jars', 'Jicamarca Radar Acquisition System'),
28 ('jars', 'Jicamarca Radar Acquisition System'),
29 ('usrp', 'Universal Software Radio Peripheral'),
29 ('usrp', 'Universal Software Radio Peripheral'),
30 ('cgs', 'Clock Generator System'),
30 ('cgs', 'Clock Generator System'),
31 ('abs', 'Automatic Beam Switching'),
31 ('abs', 'Automatic Beam Switching'),
32 )
32 )
33
33
34 DEV_PORTS = {
34 DEV_PORTS = {
35 'rc' : 2000,
35 'rc' : 2000,
36 'dds' : 2000,
36 'dds' : 2000,
37 'jars' : 2000,
37 'jars' : 2000,
38 'usrp' : 2000,
38 'usrp' : 2000,
39 'cgs' : 8080,
39 'cgs' : 8080,
40 'abs' : 8080
40 'abs' : 8080
41 }
41 }
42
42
43 RADAR_STATES = (
44 (0, 'No connected'),
45 (1, 'Connnected'),
46 (2, 'Configured'),
47 (3, 'Running'),
48 (4, 'Scheduled'),
49 )
43 # Create your models here.
50 # Create your models here.
44
51
45 class DeviceType(models.Model):
52 class DeviceType(models.Model):
46
53
47 name = models.CharField(max_length = 10, choices = DEV_TYPES, default = 'rc')
54 name = models.CharField(max_length = 10, choices = DEV_TYPES, default = 'rc')
48 description = models.TextField(blank=True, null=True)
55 description = models.TextField(blank=True, null=True)
49
56
50 class Meta:
57 class Meta:
51 db_table = 'db_device_types'
58 db_table = 'db_device_types'
52
59
53 def __unicode__(self):
60 def __unicode__(self):
54 return u'%s' % self.get_name_display()
61 return u'%s' % self.get_name_display()
55
62
56 class Device(models.Model):
63 class Device(models.Model):
57
64
58 device_type = models.ForeignKey(DeviceType)
65 device_type = models.ForeignKey(DeviceType)
59 # location = models.ForeignKey(Location)
66 # location = models.ForeignKey(Location)
60
67
61 name = models.CharField(max_length=40, default='')
68 name = models.CharField(max_length=40, default='')
62 ip_address = models.GenericIPAddressField(protocol='IPv4', default='0.0.0.0')
69 ip_address = models.GenericIPAddressField(protocol='IPv4', default='0.0.0.0')
63 port_address = models.PositiveSmallIntegerField(default=2000)
70 port_address = models.PositiveSmallIntegerField(default=2000)
64 description = models.TextField(blank=True, null=True)
71 description = models.TextField(blank=True, null=True)
65 status = models.PositiveSmallIntegerField(default=0, choices=DEV_STATES)
72 status = models.PositiveSmallIntegerField(default=0, choices=DEV_STATES)
66
73
67 class Meta:
74 class Meta:
68 db_table = 'db_devices'
75 db_table = 'db_devices'
69
76
70 def __unicode__(self):
77 def __unicode__(self):
71 return u'%s | %s' % (self.name, self.ip_address)
78 return u'%s | %s' % (self.name, self.ip_address)
72
79
73 def get_status(self):
80 def get_status(self):
74
81
75 return self.status
82 return self.status
76
83
77
84
78 class Campaign(models.Model):
85 class Campaign(models.Model):
79
86
80 template = models.BooleanField(default=False)
87 template = models.BooleanField(default=False)
81
88
82 name = models.CharField(max_length=40, unique=True)
89 name = models.CharField(max_length=40, unique=True)
83 start_date = models.DateTimeField(blank=True, null=True)
90 start_date = models.DateTimeField(blank=True, null=True)
84 end_date = models.DateTimeField(blank=True, null=True)
91 end_date = models.DateTimeField(blank=True, null=True)
85 tags = models.CharField(max_length=40)
92 tags = models.CharField(max_length=40)
86 description = models.TextField(blank=True, null=True)
93 description = models.TextField(blank=True, null=True)
87
94
88 class Meta:
95 class Meta:
89 db_table = 'db_campaigns'
96 db_table = 'db_campaigns'
90
97
91 def __unicode__(self):
98 def __unicode__(self):
92 return u'%s' % (self.name)
99 return u'%s' % (self.name)
93
100
94 class Location(models.Model):
101 class Radar(models.Model):
95
102
96 name = models.CharField(max_length = 30)
103 name = models.CharField(max_length = 30)
97 description = models.TextField(blank=True, null=True)
98 campaign = models.ForeignKey(Campaign)
104 campaign = models.ForeignKey(Campaign)
105 status = models.PositiveSmallIntegerField(default=0, choices=RADAR_STATES)
99
106
100 class Meta:
107 class Meta:
101 db_table = 'db_location'
108 db_table = 'db_radar'
102
109
103 def __unicode__(self):
110 def __unicode__(self):
104 return u'%s' % self.name
111 return u'%s' % self.name
105
112
113
106 class Experiment(models.Model):
114 class Experiment(models.Model):
107
115
108 template = models.BooleanField(default=False)
116 template = models.BooleanField(default=False)
109
117
110 location = models.ForeignKey(Location)
118 radar = models.ForeignKey(Radar)
111 name = models.CharField(max_length=40, default='')
119 name = models.CharField(max_length=40, default='')
112 start_time = models.TimeField(default='00:00:00')
120 start_time = models.TimeField(default='00:00:00')
113 end_time = models.TimeField(default='23:59:59')
121 end_time = models.TimeField(default='23:59:59')
114
122
115 class Meta:
123 class Meta:
116 db_table = 'db_experiments'
124 db_table = 'db_experiments'
117
125
118 def __unicode__(self):
126 def __unicode__(self):
119 return u'[%s]: %s' % (self.campaign.name, self.name)
127 return u'[%s]: %s' % (self.radar.name, self.name)
120
128
121 class Configuration(PolymorphicModel):
129 class Configuration(PolymorphicModel):
122
130
123 template = models.BooleanField(default=False)
131 template = models.BooleanField(default=False)
124
132
125 name = models.CharField(verbose_name="Configuration Name", max_length=40, default='')
133 name = models.CharField(verbose_name="Configuration Name", max_length=40, default='')
126
134
127 experiment = models.ForeignKey(Experiment)
135 experiment = models.ForeignKey(Experiment)
128 device = models.ForeignKey(Device)
136 device = models.ForeignKey(Device)
129
137
130 type = models.PositiveSmallIntegerField(default=0, choices=CONF_TYPES)
138 type = models.PositiveSmallIntegerField(default=0, choices=CONF_TYPES)
131
139
132 created_date = models.DateTimeField(auto_now_add=True)
140 created_date = models.DateTimeField(auto_now_add=True)
133 programmed_date = models.DateTimeField(auto_now=True)
141 programmed_date = models.DateTimeField(auto_now=True)
134
142
135 parameters = models.TextField(default='{}')
143 parameters = models.TextField(default='{}')
136
144
137 class Meta:
145 class Meta:
138 db_table = 'db_configurations'
146 db_table = 'db_configurations'
139
147
140 def __unicode__(self):
148 def __unicode__(self):
141 return u'[%s - %s]: %s' % (self.experiment.campaign.name,
149 return u'[%s - %s]: %s' % (self.experiment.campaign.name,
142 self.experiment.name,
150 self.experiment.name,
143 self.device.name)
151 self.device.name)
144
152
145 def get_absolute_url(self):
153 def get_absolute_url(self):
146 return reverse('url_%s_conf' % self.device.device_type.name, args=[str(self.id)])
154 return reverse('url_%s_conf' % self.device.device_type.name, args=[str(self.id)])
147
155
148 def get_absolute_url_edit(self):
156 def get_absolute_url_edit(self):
149 return reverse('url_edit_%s_conf' % self.device.device_type.name, args=[str(self.id)])
157 return reverse('url_edit_%s_conf' % self.device.device_type.name, args=[str(self.id)])
150
158
151 def get_absolute_url_import(self):
159 def get_absolute_url_import(self):
152 return reverse('url_import_%s_conf' % self.device.device_type.name, args=[str(self.id)])
160 return reverse('url_import_%s_conf' % self.device.device_type.name, args=[str(self.id)])
153
161
154 def get_absolute_url_export(self):
162 def get_absolute_url_export(self):
155 return reverse('url_export_%s_conf' % self.device.device_type.name, args=[str(self.id)])
163 return reverse('url_export_%s_conf' % self.device.device_type.name, args=[str(self.id)])
156
164
157 def get_absolute_url_write(self):
165 def get_absolute_url_write(self):
158 return reverse('url_write_%s_conf' % self.device.device_type.name, args=[str(self.id)])
166 return reverse('url_write_%s_conf' % self.device.device_type.name, args=[str(self.id)])
159
167
160 def get_absolute_url_read(self):
168 def get_absolute_url_read(self):
161 return reverse('url_read_%s_conf' % self.device.device_type.name, args=[str(self.id)]) No newline at end of file
169 return reverse('url_read_%s_conf' % self.device.device_type.name, args=[str(self.id)])
170
171 class Location(models.Model):
172
173 name = models.CharField(max_length = 30)
174 description = models.TextField(blank=True, null=True)
175
176 class Meta:
177 db_table = 'db_location'
178
179 def __unicode__(self):
180 return u'%s' % self.name No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now