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