Вместо Вступления.

Привет.
Мое имя Брюс Уиллис.
Никогда раньше я не работал в сфере информационных технологий. Ну вы знаете, эти съемки, гастроли, постоянная необходимость учить новые роли. Помню случай был на площадке, по моему это было во время съемок одного из «орешков». Тогда заболел мой дублер и мне самому пришлось выполнять один не сложный трюк. Но эту забавную историю, я расскажу вам в другой раз. Кароч некогда мне было в коде ковыряться. А тут бац, на дворе уже третий десяток двухтысячных и профессия актера уже не такая актуальная, как профессия программиста, ну или какая-нибудь другая специальность из области IT. Вот и подумываю, а не попробовать ли свои силы в этом направлении?

Попахивает системой SCADA.

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

Не буду вдаваться в тему существования различных языков программирования и для каких целей они преимущественно используются. Этой информации полно в сети. Да и не имею права с моими-то компетенциями. Скажу лишь, что меня заинтересовал язык C#.
«Почему?» — спросите вы.
Точного ответа у меня нет. Нууу смотрел там всякое, читал, как-то оно вот так и сложилось.

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

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

Описание функционала программы.

  • При нажатии кнопки «Заполнить» — всплывает окно со списком названий условного продукта
    • “Борщ”
    • “Компот”,
    • “Чай”
    • “Сироп”
  • Где-то в базе данных (по моим предположениям), каждому названию соответствуют начальные и целевые показатели, допустим это содержание сахара в блюде. Выбираем «Компот» и в интерфейсе программы, на кастрюле появляется название приготавливаемого блюда. В окне статус появляется «Готовка» — красное подсвечивание. В противном случае в названии надпись «Пусто»
  • По мере приготовления, мы вносим соль, сахар, воду и лепестки лунного цветка для приворота. По мере этого происходит изменение показателей. Было бы здорово опустить в кастрюлю пару датчиков, которые будут считывать к примеру температуру и количество сахара. А там и автоматический нагрев можно подрубить и подачу воды и кучу всего. Но без них нам нужно нажать на кнопку «Внести показания», при этом всплывет окно с двумя формами для ручного ввода данных. Предположим это будут все те же температура жижи и содержание сахара. Вводим цифры, нажимаем «ОК» и эти цифры записываются в базу данных и отображаются в соответствующих окнах.
  • Кнопка «Просмотр истории» открывает историю внесенных данных в виде таблицы с датами и временем, когда эти данные вносились применимо к этому компоту.
  • По мере приближения к целевым показателям, которые прописаны в базе данных (пункт 1), окно показателя окрашивается от желтого к зеленому. При опасном приближении к конечному показателю, окно начинает подсвечиваться от оранжевого к красному.
  • И вот поварята получили целевой вкус, компот готов. Отключаем нагревание и нажимаем на кнопку «Статус», снова всплывает окно с выбором:
    • “Остывание” – синее подсвечивание
    • “Холодный” – зеленое подсвечивание
      Выбираем нужное, нажимаем “ОК”.
  • Когда все разлили по стаканам, можно нажать на кнопку «Освободить» и все начать с начала. Но все внесенные данные нужно сохранить для каждого отдельного цикла, с названием блюда и соответствующими ему данными.
  • А еще все это, каким-то образом, нужно масштабировать. Предположим есть 4 плиты, на каждой из которых стоит по 4 кастрюли. Возможно эти плиты стоит реализовать в виде вкладок, чтоб не загромождать один экран программы.

Процесс реализации интерфейса тоже интересен. На языке C# это делается либо при помощи WinForms, но не думаю что этот вариант будет подходящим для удобного осуществления всех поставленных задач, либо более богатый на возможности WPF.

Попахивает системой SCADA.

Наглядное изображение того, как это выглядит в моих фантазиях. Пусть немного коряво и на скорую руку, но суть передать я постарался. Дизайном и украшательствами можно заняться позже.

На этом пока все, допилить функционал и добавить разные фишечки можно уже после.

Если вы дочитали до конца и у вас есть, что сказать и обсудить, это можно сделать в Телеграм канале.