in newtmgr/cli/common.go [107:168]
func GetXport() (xport.Xport, error) {
if globalXport != nil {
return globalXport, nil
}
cp, err := getConnProfile()
if err != nil {
return nil, err
}
switch cp.Type {
case config.CONN_TYPE_SERIAL_PLAIN, config.CONN_TYPE_SERIAL_OIC:
sc, err := config.ParseSerialConnString(cp.ConnString)
if err != nil {
return nil, err
}
globalXport = nmserial.NewSerialXport(sc)
case config.CONN_TYPE_BLL_PLAIN, config.CONN_TYPE_BLL_OIC:
bc, err := config.ParseBllConnString(cp.ConnString)
if err != nil {
return nil, err
}
cfg := bll.NewXportCfg()
if bc.CtlrName != "" {
cfg.CtlrName = bc.CtlrName
}
cfg.OwnAddrType = bc.OwnAddrType
globalXport = bll.NewBllXport(cfg, bc.HciIdx)
case config.CONN_TYPE_BLE_PLAIN, config.CONN_TYPE_BLE_OIC:
bc, err := config.ParseBleConnString(cp.ConnString)
if err != nil {
return nil, err
}
globalXport, err = config.BuildBleXport(bc)
if err != nil {
return nil, err
}
case config.CONN_TYPE_UDP_PLAIN, config.CONN_TYPE_UDP_OIC:
globalXport = udp.NewUdpXport()
case config.CONN_TYPE_MTECH_LORA_OIC:
cfg := mtech_lora.NewXportCfg()
globalXport = mtech_lora.NewLoraXport(cfg)
default:
return nil, util.FmtNewtError("Unknown connection type: %s (%d)",
config.ConnTypeToString(cp.Type), int(cp.Type))
}
globalXportSet = true
if err := globalXport.Start(); err != nil {
return nil, util.ChildNewtError(err)
}
return globalXport, nil
}