当前位置: 首页>>代码示例>>Golang>>正文


Golang Setting.UpdateSessionKey方法代码示例

本文整理汇总了Golang中github.com/grayzone/devicemonitor/conn.Setting.UpdateSessionKey方法的典型用法代码示例。如果您正苦于以下问题:Golang Setting.UpdateSessionKey方法的具体用法?Golang Setting.UpdateSessionKey怎么用?Golang Setting.UpdateSessionKey使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/grayzone/devicemonitor/conn.Setting的用法示例。


在下文中一共展示了Setting.UpdateSessionKey方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: worker

func worker(t time.Duration) {

	for {
		time.Sleep(time.Millisecond * t)

		//		log.Println("working....")
		var m conn.Message
		err := m.GetOneResponse()
		if err != nil {
			//		log.Println("worker:", err.Error())
			continue
			//			log.Printf("get one response :%v", m)
		}

		//		log.Println(m.Info)

		b, err := hex.DecodeString(m.Info)
		if err != nil {
			log.Println(err.Error())
			m.Status = conn.INVALID
			m.UpdateStatus()
			continue
		}
		var f ftprotocol.Frame
		//		log.Printf("%X", b)
		s, err := f.Parse(b)
		if err != nil {
			log.Printf("%X:%s\n", b, err.Error())
			//	m.DeleteMessage()
			m.Status = conn.INVALID
			m.UpdateStatus()

			continue
		}

		msgid, _ := strconv.ParseInt(string(f.MessageID), 16, 32)

		switch msgid {
		case ftprotocol.REQUESTSESSIONRESPONSE:
			var sessionres ftprotocol.RequestSessionResponse
			sessionres.Frame = f
			err := sessionres.ParseMessageData(f.MessageData)
			if err != nil {
				log.Println(err.Error())
				m.Status = conn.INVALID
				m.UpdateStatus()
				continue
			}

			var s conn.Setting
			s.Sessionstatus = sessionres.SessionStatus
			s.UpdateSessionStatus()

			s.Sessiontimeout = sessionres.SessionTimeout
			s.UpdateSessiontimeout()

			s.Deviceid = conn.DeviceID(sessionres.DeviceID)
			s.UpdateDeviceid()

			s.Protocolver = strconv.FormatUint(uint64(sessionres.ProtocolVersion), 10)
			s.UpdateProtocolVer()

			s.Sessionkey = string(sessionres.SessionKey)
			s.UpdateSessionKey()

			s.Sequence = string(sessionres.Sequence)
			s.UpdateSequence()

			s.Messagetimeout = sessionres.MessageTimeout
			s.UpdateMessagetimeout()

			s.Maxretrycount = sessionres.MaxRetryCount
			s.UpdateMaxretrycount()

		case ftprotocol.DEVICENAMERESPONSE:
			var res ftprotocol.DeviceNameResponse
			res.Frame = f
			err := res.ParseMessageData(f.MessageData)
			if err != nil {
				log.Println(err.Error())
				m.Status = conn.INVALID
				m.UpdateStatus()
				continue
			}
			var s conn.Setting
			//		log.Println("device  name : ", res.StringName)
			s.Devicename = res.StringName
			err = s.UpdateDevicename()
			if err != nil {
				log.Println("UpdateDevicename:", err.Error())
			}

		case ftprotocol.GETSENSORRESPONSE:
			var res ftprotocol.GetSensorResponse
			res.Frame = f
			err := res.ParseMessageData(f.MessageData)
			if err != nil {
				log.Println("GETSENSORRESPONSE:", err.Error())
				m.Status = conn.INVALID
				m.UpdateStatus()
//.........这里部分代码省略.........
开发者ID:grayzone,项目名称:devicemonitor,代码行数:101,代码来源:devicemonitor.go


注:本文中的github.com/grayzone/devicemonitor/conn.Setting.UpdateSessionKey方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。