ctm_name = cfgFile['GENERAL']['name']
    ctm_log = cfgFile['GENERAL']['log']

    ctm_signalSource_port = cfgFile['SIGNAL_SOURCE']['port']
    ctm_signalSource_address = cfgFile['SIGNAL_SOURCE']['address']

except Exception as e:
    print(f"Invalid cfg file! [{e}]")
    exit(1)

del cfgFile

# --- SAMPLE 1 -------------------
print("--- SAMPLE 1 -------------------")

con = envelop_sendRecv.connection()
ret, msgret = con.connectToServer(ctm_signalSource_address,
                                  int(ctm_signalSource_port), socket.AF_INET,
                                  socket.SOCK_STREAM)
if ret == False:
    print(msgret, file=stderr)
    exit(1)

copytrade_sample1 = BinanceCTProto.CT_PROTO()
copytrade_sample1.cmd = BinanceCTProto.CT_CMD_COPYTRADE

copytrade_sample1.fromto = {'from': ctm_name, 'to': 'SrvSend'}
copytrade_sample1.timestamp = getTimeStamp()
copytrade_sample1.cmdtype = "REQ"
copytrade_sample1.response_timestamp = ""
def sendOrderToSrvSend(symb: str = "",
                       side: str = "",
                       qtd: str = "",
                       price: str = "",
                       priceStop: str = "",
                       priceLimit: str = "",
                       typeOrd: str = "",
                       orderCTId: str = "") -> [bool, str]:
    global GUIUtilcfg

    orderToSendData = BinanceCTProto.CT_PROTO_COPYTRADE_DATA(
        _symbol=symb,
        _side=side,
        _qtd=qtd,
        _ordid=orderCTId,
        _ordtype=typeOrd,
        _price=price,
        _priceStop=priceStop,
        _priceLimit=priceLimit)

    orderToSend = BinanceCTProto.CT_PROTO(
        _cmd=BinanceCTProto.CT_CMD_COPYTRADE,
        _fromto_from=GUIUtilcfg.meName,
        _fromto_to="SrvSend",
        _timestamp=BinanceCTUtil.getTimeStamp(),
        _cmdtype=BinanceCTProto.CT_TYPE_REQUEST,
        _resp_timestamp="",
        _data=orderToSendData)

    ret, msg = orderToSend.formatToNet()
    if ret == False:
        return ([False, msg])

    con = envelop_sendRecv.connection()

    logging.debug(
        f"Connecting to SrvSend: {GUIUtilcfg.srvSendAddress} {GUIUtilcfg.srvSendPort}"
    )
    ret, retmsg = con.connectToServer(GUIUtilcfg.srvSendAddress,
                                      GUIUtilcfg.srvSendPort, socket.AF_INET,
                                      socket.SOCK_STREAM)
    if ret == False:
        return ([False, f"Connect to server error: {retmsg}"])

    ret, retmsg = con.sendMsg(msg, len(msg))
    if ret == False:
        return ([False, f"Send to server error: {retmsg}"])

    ret, retmsg, msgRecv = con.recvMsg()
    if ret == False:
        return ([False, f"Error msgRecv: [{retmsg}]"])

    orderRecv = BinanceCTProto.CT_PROTO()
    orderRecv.loadFromNet(msgRecv)

    logging.info(f'Sent: [{msg}]')
    BinanceCTProto.dumpCmdToLog(orderToSend, logging.info)

    logging.info(f'Received: [{msgRecv}]')
    BinanceCTProto.dumpCmdToLog(orderRecv, logging.info)

    return ([True, "Ok"])