Compare commits
2 Commits
4d96d3ca60
...
41d60e5019
Author | SHA1 | Date | |
---|---|---|---|
41d60e5019 | |||
4f918298e3 |
@ -5,7 +5,7 @@ services:
|
|||||||
- UDEV=1
|
- UDEV=1
|
||||||
devices:
|
devices:
|
||||||
- '/dev:/dev'
|
- '/dev:/dev'
|
||||||
# restart: always
|
restart: always
|
||||||
privileged: true
|
privileged: true
|
||||||
ports:
|
ports:
|
||||||
- 8080:8080
|
- 8080:8080
|
||||||
|
@ -22,6 +22,10 @@
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#app > .notification {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@ -31,35 +35,49 @@
|
|||||||
неРадіоактивна ситуація в Києві.
|
неРадіоактивна ситуація в Києві.
|
||||||
</h1>
|
</h1>
|
||||||
<h2 class="subtitle">В реальному часі.</h2>
|
<h2 class="subtitle">В реальному часі.</h2>
|
||||||
|
<div class="notification is-warning">
|
||||||
|
Використовуйте ландшавтну орієнтацію екрану для зручного перегляду. Або планшет чи компьютер.
|
||||||
|
</div>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
|
<div>
|
||||||
|
<apexchart type="line" height="350" :options="ratesChartOptions" :series="rates_series"></apexchart>
|
||||||
|
<button @click="rates_autoupdate = !rates_autoupdate" class="button">Автооновлення: {{ rates_autoupdate ? "ВКЛ" : "ВИКЛ" }}</button>
|
||||||
|
</div>
|
||||||
|
<div class="notification">
|
||||||
|
<strong>До 0,3 мк3в/г - нормальний радіаційний фон.</strong>
|
||||||
|
<p>
|
||||||
|
Швидкість дози в мікрозівертах на годину вказує, скільки мікрозівертів (одиниця виміру еквівалентної дози) радіації поглинається організмом або матеріалом за одну годину. Ця величина може використовуватися для оцінки рівня радіаційного впливу на людей, а також для моніторингу і контролю радіаційної безпеки в радіаційних зонах, ядерних установках або природному середовищі.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Наприклад, якщо швидкість дози становить 10 μSv/h, це означає, що організм або матеріал отримує дозу 10 мікрозівертів радіації за кожну годину. Це може вказувати на наявність джерела радіації в цьому місці або на необхідність заходів з радіаційного захисту.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<apexchart type="bar" height="350" :options="spectrumChartOptions" :series="spectrum_series"></apexchart>
|
<apexchart type="bar" height="350" :options="spectrumChartOptions" :series="spectrum_series"></apexchart>
|
||||||
<div>
|
<div>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<input type="checkbox" id="spectrum_x_accum" v-model="spectrum_accum">
|
|
||||||
<label for="spectrum_x_accum">Акумульований</label>
|
|
||||||
</fieldset>
|
|
||||||
<fieldset>
|
|
||||||
<input type="radio" id="spectrum_x_channel" v-bind:value="false" v-model="spectrum_energy">
|
|
||||||
<label for="spectrum_x_channel">Канал</label>
|
|
||||||
|
|
||||||
<input type="radio" id="spectrum_x_energy" v-bind:value="true" v-model="spectrum_energy">
|
<label class="checkbox" for="spectrum_x_accum"><input type="checkbox" id="spectrum_x_accum" v-model="spectrum_accum"> Акумульований</label>
|
||||||
<label for="spectrum_x_energy">Енергія</label>
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset class="control">
|
||||||
<input type="radio" id="spectrum_linear" v-bind:value="false" v-model="spectrum_logarithmic">
|
|
||||||
<label for="spectrum_linear">Лінійне</label>
|
<label class="radio" for="spectrum_x_channel"><input type="radio" id="spectrum_x_channel" v-bind:value="false" v-model="spectrum_energy"> Канал</label>
|
||||||
<input type="radio" id="spectrum_log" v-bind:value="true" v-model="spectrum_logarithmic">
|
|
||||||
<label for="spectrum_log">Логарифмічне</label>
|
|
||||||
|
<label class="radio" for="spectrum_x_energy"><input type="radio" id="spectrum_x_energy" v-bind:value="true" v-model="spectrum_energy"> Енергія</label>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset class="control">
|
||||||
|
|
||||||
|
<label class="radio" for="spectrum_linear"><input type="radio" id="spectrum_linear" v-bind:value="false" v-model="spectrum_logarithmic"> Лінійне</label>
|
||||||
|
|
||||||
|
<label class="radio" for="spectrum_log"><input type="radio" id="spectrum_log" v-bind:value="true" v-model="spectrum_logarithmic"> Логарифмічне</label>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
<button @click="updateSpectrum">Оновити спектр</button>
|
<button @click="updateSpectrum" class="button">Оновити спектр</button>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<apexchart type="line" height="350" :options="ratesChartOptions" :series="rates_series"></apexchart>
|
|
||||||
<button @click="rates_autoupdate = !rates_autoupdate">Автооновлення: {{ rates_autoupdate ? "ВКЛ" : "ВИКЛ" }}</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<h2 class="subtitle">(Частина проекту <a href="https://dead.guru/">dead.guru</a>)</h2>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<script>
|
<script>
|
||||||
|
@ -77,7 +77,10 @@ async def process(app):
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
print(f'Rates updated, sending to {len(app.ws_clients)} connected clients')
|
print(f'Rates updated, sending to {len(app.ws_clients)} connected clients')
|
||||||
|
try:
|
||||||
await asyncio.gather(*[ws.send_str(jdata) for ws in app.ws_clients], asyncio.sleep(1.0))
|
await asyncio.gather(*[ws.send_str(jdata) for ws in app.ws_clients], asyncio.sleep(1.0))
|
||||||
|
except Exception as e:
|
||||||
|
print(f'Error while sending to websocket: {e}')
|
||||||
|
|
||||||
|
|
||||||
async def on_startup(app):
|
async def on_startup(app):
|
||||||
|
Loading…
Reference in New Issue
Block a user