• Как реализовать небольшой редактор электрических схем?

    @inzeppelin
    Вам нужен SVG или Canvas. Но самостоятельно реализовать такое будет довольно сложно. Попробуйте посмотреть в сторону каких-то готовых решений по построению блок-схем.

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

    // device - это ваш прибор, input# - это разъемы, массивы содержат подсоединенные элементы.
    const device = {
      input1: [],
      input2: [],
      ...
    };
    // это объект, в котором есть список разъемов с разрешенными элементами
    const allowedConnnections = {
      input1: ['element1', 'element2'],
      input2: ['element3'],
      ...
    };


    Таким образом при добавлении нового элемента в разъем, нужно проверять, разрешен он или нет

    // функция должна вызываться каждый раз на добавление нового элемента
    function checkInput(inputId, elementId) {
      // возвращает true/false если элемент есть в списке разрешенных для разъема
      return allowedConnnections[inputId].indexOf(elementId) !== -1;
    }
    Ответ написан
    Комментировать
  • Как программируют телекоммуникационное оборудование?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Вообще-то, это не так работает. Сначала ставится задача типа "Разработать устройство такое-то с такими-то функциями". Далее это все прорабатывается до полноценного ТЗ со всеми подробностями. Далее это ТЗ передается инженерам, которые уже под требования ТЗ подбирают оборудование и ПО. Программисты сразу получают плату разработчика с тем же процессором и на ней уже могут производить отладку ОС и ПО. Инженеры тем временем проектируют плату, электронику, тестируют это все. В большинстве роутеров сегодня работает обычный линукс и на обычном процессоре типа ARM. Большая часть того, что там используется стандартизировано и легко покупается и компонуется в один девайс. ПО там зачастую обычный веб сервер с кучей скриптов для настройки стандартных линуксовых прогамм.
    В более сложных и больших сетевых устройствах, которые работают на магистралях, например, все несколько сложнее — там могут использоваться специальные процессоры и ПЛИС, которые программируются несколько иначе. Так же там может быть вообще полностью своя прошивка или какие-то другие специфические системы.
    Ответ написан
    Комментировать