Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Исходные данные:

1) Имеется промышленный контроллер. В нем 50кБ рабочей памяти (аналог RAM) и 4Мб внешней памяти (аналог ROM).

2) К контроллеру подключен некий аналоговый датчик, данные с которого должны сохраняться каждых 100мс в ячейку памяти в массиве находящемся в рабочей памяти, при достижении конца массива запись начинается с начала массива (при условиях о которых дальше). Размер одной записи 14 байт (значение сигнала - 4 байта, значение доп. - 4 байта, таймстамп - 6 байт)

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

4) В идеальном случае указатель чтения контроллером бежит рывками за указателем логирования. В случае же когда связь между контроллером и приложением обрывается, указатель чтения останавливается и при достижении определенного расстояния между указателями программа контроллера должна начать сохранять данные во внешнюю память, но на так как писать прямо во внешнюю память сразу нельзя, необходимо использовать функцию перемещения области памяти из рабочей памяти во внешнюю. Область которая подлежит перемещению во внешнюю память не должна поддаваться записи на время перемещения. Таким образом запись ведется до окончания всей памяти (и внешней и внутренней), после чего прекращается, пока не будет восстановлена связь с ПК.

5) Когда связь с ПК восстановлена необходимо начать процесс чтения данных в порядке в котором они были сохранены. Обратный алгоритм перемещения соответственно - копировать область памяти из внешней памяти в рабочую а оттуда вычитать приложением. Параллельно может начаться процесс записи в рабочую область новых значений.

Что необходимо:

Для вышеописанного процесса нужен алгоритм и/или псевдокод. Особенно важно подробно описать процессы "жонглирования" памятью и структуры указателей чтения/записи.

В дальнейшем, возможно, и программу для ПК закажу (предварительно C#). Библиотеки для связи с пром контроллером есть. Но это это уже смотря как пойдет первая часть с контроллером.

9 лет назад
Rebornavt
35 летУкраина
13 лет в сервисе
Был
9 лет назад
  • Похожие заказы
  • Есть приставка Kartina Micro HD для просмотра каналов Kartina ТВ через интернет (www.kartina.tv/shop_conte..., есть прошивка для неё. Есть приставка DUNE HD 102 и прошиввка для неё (dune-hd.com/firmware/tv10... точнее это одна и та же приставка. Нужно переделать ...

    Закрыт
    8 лет назад
  • Необходимо разработать логику системы. Нужен аутсорс программист С++ или C#. Опыт работы с Erlang очень желателен. Базовое понимание принципов теории массового обслуживания и распределения Пуассона очень приветствуется. Если готовы взяться, оставляйте в отклике скайп для более ...

    Закрыт
    9 лет назад
  • Краткое описание: Нужна служба или процесс, которая при запуске будет сканировать жёсткий диск находить папки с игрой (индикатор того что это нужная папка - наличие в ней определённого набора файлов - по названию) и класть в ...

    Завершен
    9 лет назад
  • Мы используем формы InfoPath 2013 на сервере SharePoint 2013. Руководство будет подписывать эти формы с помощью цифровой подписи (выданной локальным сертификационным сервером). После того, как форма подписана, ее уже невозможно редактировать. Все поля блокируются. После того как ...

    Закрыт
    9 лет назад
  • Добрый день, уважаемые фрилансеры. Тема работы: Построение компьютерной сети на предприятии ссылка для скачивания методических рекомендаций - https://cloud.mail.ru/public/43NFv53A2N3z/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D0%B0.pdf пример готовой работы, схема здания и расположение ПК в приложенном архиве Срок выполнения - 3 дня Жду ваших предложений с ценами.

    Закрыт
    9 лет назад
  • На full-time на удаленную работу требуется программист для разработки прикладного ПО под Windows. Мы ждём от вас: - Знание наиболее распространённых паттернов проектирования. Навыки рефакторинга и работы с большими объёмами кода. Желательно иметь представление о ...

    Закрыт
    9 лет назад
  • Суть задачи: нужно контролировать перемещение курсора. каждый раз, как только курсор принимает вид "лапки" (при наведении на ссылку, например), нужно записать время и координаты курсора на экране в файл в виде: time1;X1;Y1 time2;X2;Y2 time3;X3;Y3 и тд Программа должна работать в Windows7

    Закрыт
    9 лет назад
  • $30

    необходимо реализовать протокол обмена данными RDT3.0 (на С) - простую реализацию на UDP - при помощи Stop-and-Wait на UDP - при помощи Extended-Stop-and-Wait на UDP что такое Stop-and-Wait http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%B0%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%83%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C#.D0.A1.D0.B8.D0.BC.D0.BB.D0.B5.D0.BA.D1.81.D0.BD.D1.8B.D0.B9_.D0.BF.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB_.D1.81_.D0.BE.D0.B6.D0.B8.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5.D0.BC К Extended-Stop-and-Wait есть описание в референсах в файле Строк к завтра вечеру ...

    Закрыт
    9 лет назад