zserhio

zserhio

черный котяра в темной комнате
Пикабушник
Дата рождения: 1 января
3258 рейтинг 54 подписчика 8 подписок 27 постов 4 в горячем
Награды:
С Днем рождения, Пикабу!
12

Нужна помощь с прошивкой RadioBros LR-S8

поделитесь прошивкой для этой рации

залил прошивку отсюдова https://www.radtels.com/ru/pages/software-download, но нет функционала кнопок переключения частот/каналов VFO и A/B

программатор настроек/каналов отсюдлва работает нормально

надо вернуть как было :)

Нужна помощь с прошивкой RadioBros LR-S8

UPD:

вдруг кому понадобится рабочая прошивка https://www.binteradio.com/list/post/3355500/

качаем это - BT8000_RUSS_ENG_V0.20(No BT) или что будет по свежее

Показать полностью 1
13

Простая пинговалка с графиком на Python

<!--noindex--><a href="https://pikabu.ru/story/prostaya_pingovalka_s_grafikom_na_python_12582224?u=https%3A%2F%2Fwww.online-python.com%2FHRuJIQPs3E&t=https%3A%2F%2Fwww.online-python.com%2FHRuJIQPs3E&h=7357a4763ae91722c2488b9227819b54e4895310" title="https://www.online-python.com/HRuJIQPs3E" target="_blank" rel="nofollow noopener">https://www.online-python.com/HRuJIQPs3E</a><!--/noindex-->

https://www.online-python.com/HRuJIQPs3E

import tkinter as tk

from icmplib import ping

from datetime import datetime

from collections import deque

import matplotlib.pyplot as plt

from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

import configparser

import matplotlib.dates as mdates

import threading


UPDATETIME = 20

INI_FILE = 'hosts.ini'

COLUMN = 2

GRAHP_WIDTH = 600

GRAHP_HEIGHT = 300

GUI_GEOMETRY = "1220x650"

PING_COUNT = 2

PING_INTERVAL = 2

DATA_LIMIT = 3000

class Host:

def __init__(self, ip, name, width_pixels, height_pixels, log_callback):

self.ip = ip

self.name = name

self.ping_data = deque(maxlen=DATA_LIMIT)

self.time = deque(maxlen=DATA_LIMIT)

self.log_callback = log_callback


dpi = 100

width_inches = width_pixels / dpi

height_inches = height_pixels / dpi


self.fig, self.ax = plt.subplots(figsize=(width_inches, height_inches), dpi=dpi)

self.line, = self.ax.plot([], [], label=f'{ip} {name} ms', color='darkgreen', linestyle='-', linewidth=2)

self.ax.legend()


self.ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))

self.ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=30))


self.fig.autofmt_xdate()


def ping_host(self, ip, count=PING_COUNT, interval=PING_INTERVAL):

return ping(ip, count=count, interval=interval)


def update_ping(self):

try:

response = self.ping_host(self.ip)

current_time = datetime.now()

self.time.append(current_time)


if response.is_alive:

self.ping_data.append(response.avg_rtt)

else:

self.ping_data.append(0)

self.log_callback(f"{current_time.year}.{current_time.month}.{current_time.day} {current_time.hour}:{current_time.minute} : {self.name} ({self.ip}) недоступен\n")


self.line.set_data(self.time, self.ping_data)


self.ax.relim()

self.ax.autoscale_view()

self.fig.tight_layout()

self.canvas.draw()

except Exception as e:

print(f"Error pinging {self.ip}: {e}")


class App:

def __init__(self, GUI, ini_file):

self.gui = GUI

self.gui.title("Монитор Доступности оборудования")

self.gui.geometry(GUI_GEOMETRY)


self.hosts = self.load_hosts_from_ini(ini_file)


self.log_text = tk.Text(self.gui, height=10, width=80, wrap='none', state='disabled')

self.log_text.grid(row=0, column=0, padx=10, pady=10, sticky="nsew")


self.log_scrollbar = tk.Scrollbar(self.gui, orient="vertical", command=self.log_text.yview)

self.log_scrollbar.grid(row=0, column=1, sticky="ns")

self.log_text['yscrollcommand'] = self.log_scrollbar.set


self.canvas = tk.Canvas(self.gui)

self.scrollbar = tk.Scrollbar(self.gui, orient="vertical", command=self.canvas.yview)

self.scrollable_frame = tk.Frame(self.canvas)


self.scrollable_frame.bind(

"<Configure>",

lambda e: self.canvas.configure(scrollregion=self.canvas.bbox("all"))

)


self.canvas.create_window((0, 0), window=self.scrollable_frame, anchor="nw")

self.canvas.configure(yscrollcommand=self.scrollbar.set)


for i, host in enumerate(self.hosts):

canvas = FigureCanvasTkAgg(host.fig, master=self.scrollable_frame)

canvas.get_tk_widget().grid(row=i//COLUMN, column=i%COLUMN, padx=5, pady=5)

host.canvas = canvas


self.canvas.grid(row=1, column=0, sticky="nsew")

self.scrollbar.grid(row=1, column=1, sticky="ns")


self.gui.grid_rowconfigure(1, weight=1)

self.gui.grid_columnconfigure(0, weight=1)


self.start_ping()


def load_hosts_from_ini(self, ini_file):

config = configparser.ConfigParser()

config.read(ini_file)

return [Host(ip, hostname, width_pixels=GRAHP_WIDTH, height_pixels=GRAHP_HEIGHT, log_callback=self.log_message) for section in config.sections() for hostname, ip in config.items(section)]


def log_message(self, message):

self.log_text.config(state='normal')

self.log_text.insert("1.0", message)

self.log_text.config(state='disabled')


def start_ping(self):

for host in self.hosts:

thread = threading.Thread(target=host.update_ping)

thread.start()

self.gui.after(UPDATETIME * 1000, self.start_ping)


GUI = tk.Tk()

app = App(GUI, INI_FILE)

GUI.mainloop()

https://www.online-python.com/HRuJIQPs3E

формат ини-файла

[DNS]

google1 = 8.8.8.8

google2 = 8.8.4.4

cloudflare1 = 1.1.1.1

Quad9 = 9.9.9.9

Показать полностью
2

Сортировка (программирование)

UPD:

сей пост не на что не претендует и опубликован тут исключительно в образовательных целях. он показывает что можно доработать простой и не очень производительный алгоритм, который из аутсайдеров выходит в топ из не рекурсивных алгоритмов сортировки.

предлагаю затестить алгоритм сортировки

Сортировка (программирование)

по скорости работы уступает:

Быстрая сортировка (Quick Sort) ~ в 50 раз,

Сортировка слиянием (Merge Sort) ~ в 30 раз,

работает быстрее:

Сортировка выбором (Selection Sort) ~ 25%

Сортировка вставками (Insertion Sort) ~ 33%

Пузырьковая двунаправленная (cocktail_shaker_sort) ~ 250%

Пузырьковая сортировка (Bubble Sort) классическая - 300%

моё, т.к. алгоритм пилил сам

по поводу встроенных сортировок:

~1500 раз встройка быстрее .sort() которая, np.sort - практически в бесконечность :)

<function bubble_sort_dual at 0x0000025DA011A020> - 5.8732628822 sec

встроенная функция sort: 0.002321958541870117

numpy np.sort: 0.001234292984008789

длинна массива = 20000 4-значных чисел

https://www.programiz.com/online-compiler/6eYFhgRj98Hd0

Показать полностью 1
2

ТЕЛЕБОТ для игры в МАФИЮ

предлагаю затестить телебота для игры в мафию, можно как онлайн (через групповой чат дискутировать) так и офлайн (вживую).

https://disk.yandex.ru/d/rko-A4QKC7IOBg

чтоб начал работать - токен бота свой пропишите

Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества