Exemple #1
0
func (e *Elm327) addPacket(canpkt api.CanData) {
	pkt := api.CanData{}
	pkt.SeqNo = e.seqNo
	e.seqNo += 1
	pkt.Src = canpkt.Src
	pkt.AbsTime = time.Now().Format("10:00:00pm (EST)")
	pkt.RelTime = "TODO" // TODO
	pkt.Status = canpkt.Status
	pkt.Error = canpkt.Error
	pkt.Transmit = canpkt.Transmit
	pkt.Desc = canpkt.Desc
	pkt.Network = canpkt.Network
	pkt.Node = canpkt.Node
	pkt.ArbID = canpkt.ArbID
	pkt.Remote = canpkt.Remote
	pkt.Extended = canpkt.Extended
	pkt.B1 = canpkt.B1
	pkt.B2 = canpkt.B2
	pkt.B3 = canpkt.B3
	pkt.B4 = canpkt.B4
	pkt.B5 = canpkt.B5
	pkt.B6 = canpkt.B6
	pkt.B7 = canpkt.B7
	pkt.B8 = canpkt.B8
	pkt.Value = canpkt.Value
	pkt.Trigger = canpkt.Trigger
	e.Packets[e.packetIdx] = pkt
	e.packetIdx += 1
	if e.packetIdx >= MAX_BUFFER {
		e.packetIdx = 0
	}
}
Exemple #2
0
func (s *HackSession) InjectPacket(user api.User, TxPkt api.TransmitPacket) error {
	if s.Device == nil {
		return logger.Err("Device not set")
	}
	var err error
	pkt := api.CanData{}
	pkt.Src = user.GetName()
	pkt.ArbID = TxPkt.ArbId
	pkt.Network = TxPkt.Network
	pkt.B1, err = api.Atoui8(TxPkt.B1)
	if err != nil {
		return err
	}
	pkt.B2, err = api.Atoui8(TxPkt.B2)
	if err != nil {
		return err
	}
	pkt.B3, err = api.Atoui8(TxPkt.B3)
	if err != nil {
		return err
	}
	pkt.B4, err = api.Atoui8(TxPkt.B4)
	if err != nil {
		return err
	}
	pkt.B5, err = api.Atoui8(TxPkt.B5)
	if err != nil {
		return err
	}
	pkt.B6, err = api.Atoui8(TxPkt.B6)
	if err != nil {
		return err
	}
	pkt.B7, err = api.Atoui8(TxPkt.B7)
	if err != nil {
		return err
	}
	pkt.B8, err = api.Atoui8(TxPkt.B8)
	if err != nil {
		return err
	}
	err = s.Device.InjectPacket(pkt)
	return err
}