Форум » » Нужен совет по работе с NVRAM » Ответить

Нужен совет по работе с NVRAM

dannss: Здраствуйте уважаемые форумчане. Заранее спасибо всем кто откликнится. Есть в наличии RACK-2, который среди прочего оборудования в проекте, управляет одним KVM over CAT5 32x16 ROSE Xtensys американского производства, будь он неладен. Выглядит как матричный коммутатор с 32 на 16 входами и выходами. Принцип работы идентичен матрице, однако. У любого уважающего себя производителя последних, есть опция сохранения выбранных коммутаций, так называемых присетов. А наши "американские партнёры"(цитата из Путина) почему то решили игнорировать устоявшиеся тенденции на рынке и положив на всех болт, не потрудились дать такой опции. А видите ли клиент, просит проявить гибкость и войти в положение, что он заплатил за этот чудо прибор 28 штук зелёных, а в нём такой вот попандос. Причём, ладно бы эти присеты были бы постоянными, делов то. Однако менять их и запоминать должен конечный пользователь. Вот он чудо протокол этого РОЗА Switching command format: KxPyCzS<CR> Where x = user station y = stations port z = CPU port To connect an XTR-11 user station at KVM 4 to the computer at CPU port 5,send the following sequence: K4P1C5S<CR> To connect only video send the following sequence: K4P1C5V<CR> To connect to the local console, use the KVM value = 0. Вопрос, собственно вот в чём. Каковы идеи решения сей задачи? SIMPL+ ? Serial RAM? Как считаете?

Ответов - 10

Kaveckiy: Я бы в Serial RAM засовывал бы пресеты.

dannss: Требуется 5 а лучше 9 присетов, каждый из которых содержит 16 стримов типа KxPyCzS<CR>. По моим подсчётам многовато будет для 256К NVRAM? или я ошибаюсь?

Игорь K.: Задача не сложная. Общий алгоритм действий в моей реализации выглядел бы так: 1. Определяем количество пресетов, необходимых пользователю. 2. Разбираемся с работой модуля analog RAM, как было выше сказано. 3. Опрашиваем каждый выход коммутатора и аналоговое значение каждого записываем В Analog RAM под своим номером. 4. Повторяем для каждого пресета. 5. Вызывая пресет получаем аналоговую величину, которую отдаем другому модулю для Синтеза команд матричного коммутатора, в последовательности, при подаче которой коммутатор отработает все команды и не захлебнется. Памяти процессора более чем достаточно.


dannss: Игорь K. пишет: Analog RAM не Сериальный а именно Аналоговый? ведь то что выдаёт коммутатор на фидбеке это строку, то есть сериальное значение

Игорь K.: Да, аналоговый. Преобразуйте поступающий сигнал в аналоговую величину, попробуйте Serial to Analog. Это классический вариант решения, не я его придумал, все должно получиться.

dannss: Игорь K. получилось. Спасибо за отклики.

Courag1k: Добрый день! Дабы не плодить темы, напишу тут. Использую в проекте Alarm clock V2.0 в качестве расписания на вкл, выкл системы (2 отдельных модуля, с разными ID). Сохраняю в NVRAM. Работает исправно, но после перезагрузки программы, он сбрасывает все значения на дефолт. NVRAM включен, процессор CP3N. Элементы через analog Ram сохраняет исправно. При чем в папке NVRAM на процессоре есть эти файлы, но они нулевые и дата изменения это дата их создания. Alarm clock не имеет входа "сохранить" или чего-то подобного. Неужели он работает до перезагрузки, тогда зачем использовать NVRAM? Или я как-то не так использую его?

Вячеслав: Столкнулся недавно тоже с проблемой NVRAM при использовании SIMPL +. Может ноги растут оттуда же. Данные сохраненные в NVRAM терялись при перезагрузке. Точнее терялась их часть, а часть искажалась. (Процессор CP3 прошивка была актуальная на декабрь.2018) Опытным путем выяснил, что существует некий пороговой размер данных которые можно использовать в пределах одного модуля Simpl+ Грубо говоря он меньше 208 байт и больше больше либо равен 156 байта, потому как конструкция: nonvolatile STRING IPaddr$_nv[3][15]; nonvolatile STRING NAME$_nv[3][20]; nonvolatile STRING MACaddr$_nv[3][17]; уже не могла достоверно сохраниться после перезапуска. Но разбив модуль на на более мелкие, с количеством элементов массива по 2, а не по 3, все стало работать. При этом память распределяется сначала на те элементы, которые объявлены вначале, потом по остаточному принципу. При этом я как потом обнаружил в логе ошибок были некие сообщения об ошибке сохранения NVRAM. Думаю, есть некая бага в последних прошивках, которую скоро поправят. P.S. C модулем расписания, обращайтесь если что не за символическую плату поделюсь. Подсмотрел концепцию у Американцев, жаль исходника не было. (недельный вкл, выкл + 10 праздничных)

Courag1k: Вячеслав пишет: Спасибо за предложение) Родной модуль устраивает, кроме того, что не сохраняет. Размер записи у alarm clock v2.0 Это всего символов 15 числовых с разделителями. Прошивка сентябрьская, на других не проверял.

Courag1k: Походу баг прошивки. На 12 контролерах на 1 программе не сохраняет. На одном контроллере на 2 программе сохраняет исправно. Прошью, проверю



полная версия страницы