Esempio n. 1
0
        private (String CanAddress, CanFunCodeEnum FunCode) ParseCanData(byte[] recData)
        {
            byte           sourceID   = recData[0];
            String         CanAddress = $"{ByteUtil.ToHex(recData[0])}-{ByteUtil.ToHex(recData[2],recData[3])}";
            CanFunCodeEnum FunCode    = (CanFunCodeEnum)recData[1];

            return(CanAddress, FunCode);
        }
Esempio n. 2
0
        private Byte[] GenerateSendData(byte[] addr, CanFunCodeEnum FunCode, params byte[] datas)
        {
            Byte[] result = new Byte[8];
            result[0] = ID;
            result[1] = (Byte)FunCode;
            result[2] = addr[0];
            result[3] = addr[1];
            var len = Math.Min(datas.Length, 4);

            for (byte i = 0; i < len; i++)
            {
                result[i + 4] = datas[i];
            }
            return(result);
        }
Esempio n. 3
0
 public override void SetListenFun(String CanAddress, CanFunCodeEnum UpType, CanListenFun ListenFun)
 {
     lock (Listen_Lock)
     {
         var addrs = ParseCanAddress(CanAddress);
         if (addrs == null)
         {
             return;
         }
         (Byte TargetId, Byte[] addr) = addrs.Value;
         var    data    = GenerateSendData(addr, UpType, 0);
         string key_str = ByteUtil.ToHex(data[0]) + ByteUtil.ToHex(TargetId) + ByteUtil.ToHex(data[1]) + ByteUtil.ToHex(data[2]) + ByteUtil.ToHex(data[3]);
         if (ListenFunList.ContainsKey(key_str))
         {
             ListenFunList[key_str] = ListenFun;
         }
         else
         {
             ListenFunList.Add(key_str, ListenFun);
         }
     }
 }
Esempio n. 4
0
 public abstract void SetListenFun(String CanAddress, CanFunCodeEnum UpType, CanListenFun ListenFun);