petera
20.05.2017, 12:19
Хочу консоль в СП3хх.
Зачем?
1. Т.к. я чайник в Си, то порой неработающие 5 строк в своей программе приводят меня в ступор. Начинается поиск места, в котором есть ошибка. Ошибки у меня элементарные, например могу перепутать & и && или = и ==. Я ведь не работал с языком Си. Второй проект на си в моей практике - это гипертерминал в панели http://www.owen.ru/forum/showthread.php?t=26719
По этому хочу точки останова в программе, мониторинг переменных и пр.
А для этого нужна консоль. Пусть даже с экранчиком на 4 строки по 16 символов.
2. Консоль нужна для реализации таких "хотелок"
- работа с файлами на флешке прямо из окна консоли, например, создание и редактирование файлов, отправка и прием файлов из ПК по протоколу Z-модем. Если в панели нет USB, то хотелось бы сделать виртуальный диск в панели для того, чтобы работать с файлами прямо из консоли ..... Тем самым уравнять панели с буковкой "Р" и без буковки.
- сделать интерпретатор скриптового языка писать скрипты прямо в окне консоли, сохранять их на виртуальном диске. Запускать скрипты по условию или по команде с консоли.
- сделать мониторинг переменных в программах и регистров панели, записывать лог в файл.
3. Если реализовать перенаправление консольного ввода/вывода на COM порт панели, то в качестве консоли можно будет использовать, например, гипертерминал Windows. Тогда все по п.2 можно будет делать удаленно.
3. наверно будут и другие хотелки.
Теперь, что для консоли нужно
1. Клавиатура и экран. Это элементарно, я уже делал в своем гипертерминале.
2. Функции для консольного ввода/вывода. Придется писать самому.
3. Придумать унифицированный интерфейс между экранами панели и функциями ввода/вывода. Предусмотреть возможность работы с разными консольными экранами с любым количеством строк и столбцов, причем так, чтобы в самих функциях ничего не менялось.
Экран консоли и клавиатуру я сделал. Часть функций написал, но не все. Т.к. я с Си не работал, то мне совсем понятно как работают некоторые реальные функции, например getchar().
Чтобы не изобретать названия для своих функций решил имена им давать заглавными буквами. Теперь и названия привычные и компилятор не ругается на использование зарезервированных имен.
Пока тестирую то, что написал, а для этого в качестве теста написал игру "Крестики-нолики"
Видео с работающей панелью мне записать нечем, по этому показываю анимацию gif
http://www.owen.ru/forum/attachment.php?attachmentid=31258&d=1495218728
В проекте один экран,
31269
Один макрос
31270
И набор функций а Глобальном макросе
31271
Для наглядности часть моих "консольных" функции поместил прямо в Глобальный макрос
31272 31273
31274 31275
31276
Хотел бы услышать конструктивные замечания и предложения по выше сказанному.
Зачем?
1. Т.к. я чайник в Си, то порой неработающие 5 строк в своей программе приводят меня в ступор. Начинается поиск места, в котором есть ошибка. Ошибки у меня элементарные, например могу перепутать & и && или = и ==. Я ведь не работал с языком Си. Второй проект на си в моей практике - это гипертерминал в панели http://www.owen.ru/forum/showthread.php?t=26719
По этому хочу точки останова в программе, мониторинг переменных и пр.
А для этого нужна консоль. Пусть даже с экранчиком на 4 строки по 16 символов.
2. Консоль нужна для реализации таких "хотелок"
- работа с файлами на флешке прямо из окна консоли, например, создание и редактирование файлов, отправка и прием файлов из ПК по протоколу Z-модем. Если в панели нет USB, то хотелось бы сделать виртуальный диск в панели для того, чтобы работать с файлами прямо из консоли ..... Тем самым уравнять панели с буковкой "Р" и без буковки.
- сделать интерпретатор скриптового языка писать скрипты прямо в окне консоли, сохранять их на виртуальном диске. Запускать скрипты по условию или по команде с консоли.
- сделать мониторинг переменных в программах и регистров панели, записывать лог в файл.
3. Если реализовать перенаправление консольного ввода/вывода на COM порт панели, то в качестве консоли можно будет использовать, например, гипертерминал Windows. Тогда все по п.2 можно будет делать удаленно.
3. наверно будут и другие хотелки.
Теперь, что для консоли нужно
1. Клавиатура и экран. Это элементарно, я уже делал в своем гипертерминале.
2. Функции для консольного ввода/вывода. Придется писать самому.
3. Придумать унифицированный интерфейс между экранами панели и функциями ввода/вывода. Предусмотреть возможность работы с разными консольными экранами с любым количеством строк и столбцов, причем так, чтобы в самих функциях ничего не менялось.
Экран консоли и клавиатуру я сделал. Часть функций написал, но не все. Т.к. я с Си не работал, то мне совсем понятно как работают некоторые реальные функции, например getchar().
Чтобы не изобретать названия для своих функций решил имена им давать заглавными буквами. Теперь и названия привычные и компилятор не ругается на использование зарезервированных имен.
Пока тестирую то, что написал, а для этого в качестве теста написал игру "Крестики-нолики"
Видео с работающей панелью мне записать нечем, по этому показываю анимацию gif
http://www.owen.ru/forum/attachment.php?attachmentid=31258&d=1495218728
В проекте один экран,
31269
Один макрос
31270
И набор функций а Глобальном макросе
31271
Для наглядности часть моих "консольных" функции поместил прямо в Глобальный макрос
31272 31273
31274 31275
31276
Хотел бы услышать конструктивные замечания и предложения по выше сказанному.