Перейти к содержимому


Фотография

Управление реактором BigReactors

Микроконтроллер

Тема находится в архиве. Это значит, что в нее нельзя ответить.
Сообщений в теме: 11

#1 Оффлайн   FrideakisAB

FrideakisAB
  • Пользователи
  • Сообщений: 46
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 19 Сентябрь 2017 - 07:51

Итак я написал простенькую программу для управления реактором, чтобы пользоваться нужно поставить в корпус реактора компьютерный порт, собрать микроконтроллер (корпус 1лвл проц 1лвл оперативка 1лвл) в eeprom нужно записать этот код: https://pastebin.com/3b8N9nU9 и поставить микроконтроллер рядом с компьютерным портом реактора.

#2 Онлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 936
  • Уровень сигнала: 5,93%
  • В игре: 50 час. 55 мин.

Награды

                          

Отправлено 19 Сентябрь 2017 - 08:49

я написал простенькую программу для управления реактором, чтобы пользоваться нужно поставить в корпус реактора компьютерный порт, собрать микроконтроллер (корпус 1лвл проц 1лвл оперативка 1лвл) в eeprom нужно записать этот код

1) Разве микроконтроллер умеет работать с периферией?
2) Программа проверялась на работоспособность?

#3 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 787
  • Уровень сигнала: 46,35%
  • В игре: 398 час. 9 мин.

Награды

                 

Отправлено 19 Сентябрь 2017 - 08:50

Итак я написал простенькую программу для управления реактором
local reactor = cmoponent.BigReactors-Reactor_0
local max = 900000
local low = 500000
 
while true do
  if reactor.getEnergyStored < low then
   reactor.setActiv(true)
  else if reactor.getEnergyStored > max then
   reactor.setActive(true)
  end
end 

ты это серьезно? это же лагодромная лагулька. И почему оно его всегда включает?

 

не проще тогда написать так:

local reactor = cmoponent.BigReactors-Reactor_0
 
while true do
  reactor.setActive(true)
end  

может тогда бомбанет на несколько наносекунд быстрее и быстрее перестанет залагивать сервак.



#4 Онлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 936
  • Уровень сигнала: 5,93%
  • В игре: 50 час. 55 мин.

Награды

                          

Отправлено 19 Сентябрь 2017 - 08:58

@Alex, да не переживай ты так. Не будет никакого лагодрома. Прога не заработает не только с EEPROM, но и даже в OpenOS.

#5 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 19 Сентябрь 2017 - 10:59

При всём уважении к чувствам автора, это что-то странное.

Типа: "у меня тут внезапно зачезались руки и я пять минут писал на языке, который похож на Луа; вот, держите, теперь вы сами разбирайтесь что это за хренотня".



#6 Оффлайн   FrideakisAB

FrideakisAB
  • Автор темы
  • Пользователи
  • Сообщений: 46
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 19 Сентябрь 2017 - 11:11

При всём уважении к чувствам автора, это что-то странное.
Типа: "у меня тут внезапно зачезались руки и я пять минут писал на языке, который похож на Луа; вот, держите, теперь вы сами разбирайтесь что это за хренотня".


Да)

#7 Оффлайн   Laine_prikol

Laine_prikol
  • Пользователи
  • Сообщений: 133
  • Уровень сигнала: 0,48%
  • В игре: 4 час. 6 мин.

Награды

           

Отправлено 19 Сентябрь 2017 - 11:52

Ошибка в программе:

-- Правильно
reactor.setActive(true)
-- Неправильно
reactor.setActiv(true)

Также, зачем создавать переменные? Если всё равно значения в них не меняются:

-- Это убрать
local max = 900000
local low = 500000

А в сравнениях делать вот так:

if reactor.getEnergyStored < 500000 then
if reactor.getEnergyStored > 900000 then

И эта программа из 11 строк превратится в 8 строк.


Сообщение отредактировал Laine_prikol: 19 Сентябрь 2017 - 11:56


#8 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 19 Сентябрь 2017 - 12:24

Также, зачем создавать переменные? Если всё равно значения в них не меняются:

 

Справедливости ради, как раз это оправдано.

Называется - "избавиться от магических констант".

 

Когда каждое число (или любое другое значение) в коде сохранено в переменную - оно имеет название. А название - поясняет, что это за число.

 

Например, что понятнее?

if x > 0 and x < WIDTH then ... end

или

if x > 0 and x < 19 then .. end

В первом случае очевидно идёт проверка по попадание координаты по ширине. Во втором - не обязательно. Приходится приглядываться к этому фрагменту внимательнее.

 

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

А если бы везде использовались просто числа, пришлось бы лопатить код, и надеяться, что ты не забыл где-то что-то поменять.



#9 Оффлайн   FrideakisAB

FrideakisAB
  • Автор темы
  • Пользователи
  • Сообщений: 46
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 19 Сентябрь 2017 - 18:44

Как мне удалить этот кал? (Саму тему)

#10 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 780
  • Уровень сигнала: 4,24%
  • В игре: 36 час. 25 мин.

Награды

   3                        

Отправлено 19 Сентябрь 2017 - 18:49

zzAYKmW.png


Сообщение отредактировал NEO: 19 Сентябрь 2017 - 18:50


#11 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 19 Сентябрь 2017 - 18:59

Как мне удалить этот кал? (Саму тему)

 

Alex Сбрасываем в корзину?

Тема вроде особой актуальности не несёт. Один флуд.
Автор я так понимаю решил таки доработать проект.



#12 Оффлайн   FrideakisAB

FrideakisAB
  • Автор темы
  • Пользователи
  • Сообщений: 46
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 19 Сентябрь 2017 - 19:01

Alex Сбрасываем в корзину?
Тема вроде особой актуальности не несёт. Один флуд.
Автор я так понимаю решил таки доработать проект.

кидайте в корзину