Цитата(kolobok0 @ Oct 25 2016, 03:03)

1) можно, не будет. т.к. см. выше моё предыдущий пост. Или скажем по другому => в RFC если это не запрещено - то однозначно МОЖНО.
2) пишется обработчик и разбор одного протокола, потом второго. Можно взять кота в мешке, тьху готовый серый ящик. Можно сделать его прозрачным,
можно вообще по мотивам написать более скоростной и компактный - тут поле для творчества вагон и маленькая кружка.
3) Ваш проект (с точки зрения наполнения логикой) очень и очень прост. Кстати совет дня (попробуйте написать модбас сервер, чтоб можно потом только декларотивно добавлять сколько
угодно функций-адресов) Поверьте - у Вас много кода сократиться...

я всё правильно ответил на поставленные Вами вопросы?
только боюсь Вам от этого вряд-ли полегчало...
удачи Вам
(круглый)
Можно было так с самого начала и написать.
На счет Modbus: я примерно к этому и пришел, вот кусочек для ModbusRTU, он упрощает процесс: достаточно добавить в файл новую функцию и зарегистрировать её в таблице:
Код
// *************************************************************************** //
typedef uint16_t (* FUNC)(int8_t *Buf);
typedef struct {
int8_t const idx; // Индекс функции таблице.
int8_t const cmd; // Код функции.
FUNC func; // Функция.
}COMMAND;
// *************************************************************************** //
uint16_t Exception(int8_t *Buf);
uint16_t WriteMultipleRegisters(int8_t *Buf);
uint16_t ReadHoldingRegisters(int8_t *Buf);
// Индекс, код функции, функция.
const COMMAND cmds[] =
{
{ 0, 0x00, Exception}, // Функция не поддерживается.
{ 1, 0x03, ReadHoldingRegisters}, // Чтение регистров.
{ 2, 0x10, WriteMultipleRegisters}, // Запись регистров.
};
// *************************************************************************** //
void Process(int8_t *Buf)
{
int8_t code = Buf[1]; // Код функции.
int8_t i = FindIdx(code); // Индекс.
...
Size = cmds[i].func(Buf);
...
}
// *************************************************************************** //
Всем спасибо! Т.е. запустить на одном микроконтроллере TCP-сервер и UDP-клиент можно и примеры есть.