Перейти к публикации
Форум - ComputerCraft

Рекомендованные сообщения

Здравствуйте. Пишу свою ОС для computercraft.

 

 

Рассказать про нее пока могу не много:

-Многопоточность

-Обработка ошибок

-Task Viewer, которым можно прибить процесс.

-Окошки :)

 

-Создание/удаление это понятно
-Изменение заголовка - тоже фигня...
-Изменение положения на экране (перетаскивание) - ничего так...
-Изменение размера (О_О)

Все компоненты окошек рисуются и реагируют отдельно.
Сейчас доступны следующие компоненты:
-Кнопочка
-Label (надпись)
-List Box (список с выбором)

Так же для рабочего стола доступен Contex Menu.

Планы:

-Полоса прокрутки (Scroll Bar)

-Создание обработки у компонентов свойства Align (привязка к окошку).
-Галочка (Check Box)

-TextBox (вводим пароль и т.д.)

Пока все...

 

 

Скриншоты:

post-10981-0-26474000-1418996105_thumb.png post-10981-0-47760000-1419093842_thumb.png post-10981-0-83445900-1419097673_thumb.png post-10981-0-14289500-1419097894_thumb.png post-10981-0-75065500-1419432893_thumb.png

 

В ближайшее время:

-Многопоточный терминал (для запуска стандартных прог, аля, эмулятор CraftOS).

 

Планы:

-Настройка системы (стили, информация при запуске)

-Файл менеджер (наконец-то!)

-Распознование и отображение оборудования

-Окно авторизации (в планах по православному логин пароль и еще авторизация по смарт-карте (дискетке))

-SDK (среда разработки программ под JetOS)

-Серверная версия, аля, домен (отличия будут заключатся в том, что она будет урезаная, всякие красивости типа изменения размера окон будут удалены, т.к. это достаточно тяжелая операция для lua).

 

Исходный код:

 

 

Изменено пользователем Jet
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

CraftNet ,не очень уж тяжело поддерживать. можно это исключить,скачал библиотеку с пастебин ,и всё пиши на здоровье.

Изменено пользователем NEO

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

CraftNet ,не очень уж тяжело поддерживать. можно это исключить,скачал библиотеку с пастебин ,и всё пиши на здоровье.

Ну в общем то да. Поскольку craftnet основан на rednet-е, а он, с свою очередь, приостанавливает програмку, когда ждет пакетик, то все гуд.

 

Сами приложения под эту ОС имеют некую особенность структуры для а) работы в "потоке"; б) возможности запуска нескольких копий.

Изменено пользователем Jet

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сами приложения под эту ОС имеют некую особенность структуры для а) работы в "потоке"; б) возможности запуска нескольких копий.

Т.е. любое приложение под этой ОС не запустишь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Т.е. любое приложение под этой ОС не запустишь?

Именно так. ОС предложит проанализировать его и переделать под себя.

 

Ну, или, можно запустить терминал и оттуда уже приложение. Соответственно при запуске нескольких копий будет трэш, особенно если функций много в нем. ТРэш заключается в сборщике мусора java, который удалит все ссылки на функции после закрытия одной копии.

Изменено пользователем Jet

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Какими особенностями должно обладать приложение, чтобы оно могло быть запущено под JetOS?

 

Структурой JetOS.)))

Есть особенности запуска и они должны быть учтены.

 

Не вникайте, SDK (среда разработки) все за вас сделает.

Изменено пользователем Jet

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добавил кое-что.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Какими особенностями должно обладать приложение, чтобы оно могло быть запущено под JetOS?

 

Вот так выглядит исходный код окошка Hello world на скринах.

 

 

 



--mt



local window, closeB, okB, label

local running = true



local function dtor()

running = false

os.queueEvent("thread", window:getID())

end



local function main()

local eventData



while running do

eventData = { os.pullEvent()}

end

end



local function ctor()

window = forms.newForm(10, 5, 17, 5)

forms.setCaption(window, "Test window")



closeB = forms.newButton(window, window.w - 1, 0, 1)

forms.setCaption(closeB,"x")

forms.setButtonColors(closeB, colors.red, colors.white)

forms.setEvent(closeB, dtor)



label = forms.newLabel(window, 1, 2)

forms.setCaption(label, " Hello world!")



okB = forms.newButton(window, 6, 4, 4)

forms.setCaption(okB, " OK")

forms.setEvent(okB, dtor)



threads.newFormThread(window, main)

end



ctor()

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дописал диспетчер процессов.

 

post-10981-0-25038700-1419433089_thumb.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

чем дальше в лес тем виндовс!)))

похоже очень на виндовс

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

чем дальше в лес тем виндовс!)))

похоже очень на виндовс

Ну так и делаю с него.) Более менее как работает ОС знаю только про винду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хорошо, но немного неаккуратно.

Изменено пользователем TheScientist

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хорошо, но немного неаккуратно.

 

А что не аккуратно то?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм. Оказывается не все я знал про возможности CC...

 

post-10981-0-93921700-1421627564_thumb.png

Изменено пользователем Jet

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм. Оказывается не все я знал про возможности CC...

 

 

 

Что насчёт того чтобы можно было бы установить пароль?

Хм. Оказывается не все я знал про возможности CC...

 

 

 

Что насчёт того чтобы можно было бы установить пароль?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что насчёт того чтобы можно было бы установить пароль?

Суть не в пароле.) А в том что terminal CC может работать в разрешении превышающим 19х51.

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

 

И да, кстати, уважаемые пользователи, вы знали что в шторм (именно в шторм, не дождь) беспроводной модем СС работает на 16 блоков, а не на 64?)

Изменено пользователем Jet

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Или кто то рискнет это дописывать. Если так - можно написать мне, я напишу какие идеи были на развитие, опишу алгоритмы...

 

 

Просто реально нету времени заниматься.

Изменено пользователем Jet

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×