func buildSesnCfg()

in newtmgr/cli/common.go [178:259]


func buildSesnCfg() (sesn.SesnCfg, error) {
	sc := sesn.NewSesnCfg()

	cp, err := getConnProfile()
	if err != nil {
		return sc, err
	}

	switch cp.Type {
	case config.CONN_TYPE_SERIAL_PLAIN:
		sc.MgmtProto = sesn.MGMT_PROTO_NMP
		return sc, nil

	case config.CONN_TYPE_SERIAL_OIC:
		sc.MgmtProto = sesn.MGMT_PROTO_OMP
		return sc, nil

	case config.CONN_TYPE_BLE_PLAIN:
		bc, err := config.ParseBleConnString(cp.ConnString)
		if err != nil {
			return sc, err
		}

		x, err := GetXport()
		if err != nil {
			return sc, err
		}
		bx := x.(*nmble.BleXport)

		sc.MgmtProto = sesn.MGMT_PROTO_NMP
		if err := config.FillSesnCfg(bx, bc, &sc); err != nil {
			return sc, err
		}

		return sc, nil

	case config.CONN_TYPE_BLE_OIC:
		bc, err := config.ParseBleConnString(cp.ConnString)
		if err != nil {
			return sc, err
		}

		x, err := GetXport()
		if err != nil {
			return sc, err
		}
		bx := x.(*nmble.BleXport)

		sc.MgmtProto = sesn.MGMT_PROTO_OMP
		if err := config.FillSesnCfg(bx, bc, &sc); err != nil {
			return sc, err
		}

		return sc, nil

	case config.CONN_TYPE_UDP_PLAIN:
		sc.MgmtProto = sesn.MGMT_PROTO_NMP
		sc.PeerSpec.Udp = cp.ConnString

		return sc, nil

	case config.CONN_TYPE_UDP_OIC:
		sc.MgmtProto = sesn.MGMT_PROTO_OMP
		sc.PeerSpec.Udp = cp.ConnString

		return sc, nil

	case config.CONN_TYPE_MTECH_LORA_OIC:
		mc, err := config.ParseMtechLoraConnString(cp.ConnString)
		if err != nil {
			return sc, err
		}
		sc.MgmtProto = sesn.MGMT_PROTO_OMP
		err = config.FillMtechLoraSesnCfg(mc, &sc)
		return sc, err

	default:
		return sc, util.FmtNewtError("Unknown connection type: %s (%d)",
			config.ConnTypeToString(cp.Type), int(cp.Type))
	}

}