Разработка архитектуры системы для оперативного приобретения и 'управления'

Вы можете попробовать это:

if (!string.IsNullOrEmpty(dirName) && Directory.Exists(dirName))
{
    try
    {
        System.IO.Compression.ZipFile.ExtractToDirectory(fileName, dirName);
    }
    catch (ArgumentException ex)
    {
        // file is empty (as we already checked for directory)
        File.Delete(fileName);
    }


    // OR

    if (new FileInfo(fileName).Length == 0)
    {
        // empty
        File.Delete(fileName);
    }
    else
    {
        System.IO.Compression.ZipFile.ExtractToDirectory(fileName, dirName);
    }
}

Как проверить, пуст ли файл

5
задан Benjol 23 February 2009 в 06:17
поделиться

7 ответов

Так как Вы проходите дорожка, я должен предположить, что частота дискретизации составляет не больше чем 10 кГц. Можно разгрузить данные к ПК на том уровне легко, даже USB на 12 Мбит (полная скорость).

Для серьезной обработки математических данных Matlab является способом пойти. Но так как я не услышал о F#, я не могу прокомментировать.

4 x 400 удваивается, не без проблем. Даже низкопроизводительные FPGAs имеют 100's Кбита памяти.

Вы не должны изменять изображения для свопинга между чтением и записью. Это сделано все время в FPGAs.

2
ответ дан 13 December 2019 в 19:36
поделиться

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

Забудьте FPGA. Упростите свой дизайн, среду разработки и интерфейсы, если Вы не знаете, что собираетесь унести свои требования в реальном времени с другим решением.

Если бы у Вас есть бюджет, я сначала бросил бы взгляд на LabView.

http://www.ni.com/labview/

http://www.ni.com/dataacquisition/

LabView дал бы Вам систему сбора данных и пользователя GUI все на единственном ПК. По моему опыту, разработчики не выбирают LabView, потому что не похоже на 'реальную' среду программирования, но я определенно рекомендовал бы это для проблемы, которую Вы описали.

Если бы Вы полны решимости использовать скомпилированные языки, то я изолировал бы компонент приобретения данных реального времени к встроенной цели с RTOS и предпочтительно тот, который использует в своих интересах MMU для планирования и изоляции потока и позволяет Вам записать в C. Если Вы получаете реальный RTOS, необходимо смочь realiably запланировать процессы, которые должны работать и также смочь отладить их в случае необходимости! Сохраните эту нецелевую систему максимально простой с определенными интерфейсами. Заставьте его сделать как раз достаточно для получения данных, в которых Вы нуждаетесь.

Я затем реализовал бы интерфейсы назад к GUI ПК с помощью файла единого интерфейса для обслуживания. Используйте стандартные интерфейсы для передачи данных к ПК, чему-то как USB2 или Ethernet. Микросхемы FTDI являются большими для этого материала.

3
ответ дан 13 December 2019 в 19:36
поделиться

Что Ваше соединение к ПК? .NET будет подходящим вариантом, если это будет основанное на сети соединение, поскольку можно использовать потоки для контакта с вводом данных.

Мое единственное предупреждение Вам относительно F# или любого языка функционального программирования, включающего большие наборы данных, является использованием памяти. Они замечательны и математически доказуемы, но когда Вы получаете исключение из-за переполнения стека от ко многим рекурсиям, это означает, что Ваша программа не будет работать, и Вы теряете время и усилие.

C# будет большим, если необходимо разработать GUI, winforms и GDI + должны получить Вас к чему-то применимому без монументального усилия.

Дайте нам еще некоторую информацию относительно скоростей передачи данных и соединения, и возможно мы можем предложить еще некоторую справку?

1
ответ дан 13 December 2019 в 19:36
поделиться

Я сделал большую встроенную разработку включая гибридные системы, такие как та, которую Вы описали. На скоростях передачи данных и размерах необходимо обработать, я сомневаюсь, что Вам нужен FPGA..., просто находят от системы сбора данных полки включать Ваш ПК.

Я думаю самая большая проблема, с которой Вы собираетесь столкнуться, более связан с привязками к языку для Ваших аппаратных API. В прошлом я должен был разработать много своего программного обеспечения в C и блоке (и даже некоторый Forth) просто, потому что это было самым легким способом получить данные из аппаратных средств.

1
ответ дан 13 December 2019 в 19:36
поделиться

В Microsoft Robotics Studio могло бы быть что-то полезное: текст ссылки специально для оперативного аспекта. CCR - Время выполнения Координации Параллелизма уже имеет многое из продуманного, и инструменты моделирования могли бы помочь Вам создать модель, которая помогла бы Вашему анализу.

1
ответ дан 13 December 2019 в 19:36
поделиться

Вот предложение.

Выведите понятие FPGA. Заставьте оценочную плату DSP от Выбора TI один с достаточным количеством гигафлопов делать Вас счастливыми. Достаточно RAM для хранения рабочего набора.

Программируйте его в C. Предоставление TI маленькое ядро RT.

Это говорит с ПК, скажите последовательный порт или Ethernet, безотносительно.

Это отправляет, ПК приготовил данные с квитированием, таким образом, данные не теряются. Существует достаточно поршня в DPS, чтобы хранить Ваши данные, в то время как ПК имеет провалы памяти.

Никакие проблемы производительности с DSP.

Бит в реальном времени делает в реальном времени с MP поршня. Обработка быстра, и GUI не строго ограничен во времени.

2
ответ дан 13 December 2019 в 19:36
поделиться

Звуки мне как Вы могут сделать всю обработку от строки. Если это верно, затем офлайн способ пойти. Другими словами, разделите процесс на 3 шага:

  1. Сбор данных
  2. Анализ данных
  3. Физические системные исправления на основе анализа данных.

Сбор данных

Если Вы не можете собрать данные с помощью стандартного интерфейса, то, вероятно, необходимо пойти с пользовательским интерфейсом. Трудно, чтобы сказать, необходимо ли использовать FPGA, не зная больше об интерфейсе. Создание пользовательских интерфейсов является дорогим, таким образом, необходимо сделать исследование компромисса для выбора подхода. Так или иначе, если это - FPGA, базирующийся, затем сохраняют FPGA простым и используют его для приобретения необработанных данных. С текущей технологией жестких дисков можно легко сохранить 100 Гигабайтов данных для последующей обработки, поэтому хранить необработанные данные на дисководе. Нет никакого способа, которым Вы хотите реализовать даже 1 размерный фильтр Калмана в FPGA, если Вы не имеете к.

Анализ данных

После того как у Вас есть данные по жесткому диску, затем у Вас есть много опций для анализа данных. Если Вы уже знаете F#, то пойдите с F#. Python и Matlab оба имеют много в наличии библиотек анализа данных.

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

Физические системные исправления

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

1
ответ дан 13 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: