воскресенье, 7 ноября 2021 г.

TcpIpSocket класс, для приема/передачи байт-последовательностей

Пример использования:
---------------------

private void button1_Click(object sender, EventArgs e)
{
    Thread _thr = new Thread(_thr_process);
    _thr.IsBackground = false;
    _thr.Start();
}

CustomSocket socket;

private void event_socket_rx_data(byte[] msg)
{
    log.log_rx(msg);
}

private void event_socket_tx_data(byte[] msg)
{
    log.log_tx(msg);
}

private void event_socket_connect(string msg)
{
    log.log_msg(msg);
}


private void event_socket_noconnect(string msg)
{
    log.log_err(msg);
}

private void event_socket_close_connect(string msg)
{
    log.log_msg(msg);
}

private void _thr_process()
{
    socket = new CustomSocket();
    socket.event_rx = event_socket_rx_data;
    socket.event_tx = event_socket_tx_data;
    socket.event_close_connection = event_socket_close_connect;
    socket.event_connection = event_socket_connect;
    socket.event_noconnection = event_socket_noconnect;
    
    if (!socket.doConnect("192.168.0.209", 5205))
        return;

    socket.Send(new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05 }));

    rx_bytes = new byte[1024];
    socket.Receive(ref rx_bytes, 0, 1024, 2000);

    socket.CloseConnection();
}

Скачать класс: CustomSocket.cs

четверг, 4 ноября 2021 г.

Класс для логирования программы (RichTextBox)

Пример использования:
---------------------
...

using proj_namespace.Framework;

...

class Class_Name {

    RichTextBoxLogClass log;

    public Class_Name() {
        log = new RichTextBoxLogClass(rtbLog);
    }
    
    ...

    public void button_click(...) {
        log.log_msg("Начало выполнения операции.");
        log.log_err("Ошибка выполнения операции");
        log.log_tx("ASCII CMD SEND TEXT");
        log.log_rx("ASCII CMD RECIVED TEXT");
        log.log_tx(new byte [] {0x01, 0x20, 0x44, 0x55});
        log.log_rx(new byte [] {0x01, 0x20, 0x44, 0x55});
    }
}

Настраиваемые параметры:
------------------------
    log.col_msg - цвет текста сообщения, например, Color.Gray;
    log.col_err - цвет текста сообщения об ошибке, например, Color.Black;
    log.col_tx - цвет текста отправляемых данных, например,  Color.Red;
    log.col_rx - цвет текста принимаемых данных, например, Color.Blue;

    log.timestampFormat - формат вывода времени, например, "HH:mm:ss.ff";

    log.bytes_in_line - количество байт в строке, например, 16;
    log.hex_to_ascii_space - расст между hex и ascii строк, напр. 8;

Скачать: RichTextBoxLogClass.cs

Docker. Первые контейнеры

Источник:  php.dragomano.ru Структура каталогов: ~/develop/web/project/                  nginx/      - сервис web-сервера                php...