Beispiel #1
0
 public IModbusWrapper Scan()
 {
     if (buffer.Count >= 8)
     {
         var code = buffer[1];
         CheckCode(code);
         var length = 8;
         if (HasBytesAt6(code))
         {
             if (buffer.Count >= 9)
             {
                 length = 9 + buffer[6];
             }
             else
             {
                 return(null);
             }
         }
         if (buffer.Count >= length)
         {
             var request = buffer.GetRange(0, length).ToArray();
             buffer.RemoveRange(0, length);
             return(protocol.Parse(request, 0));
         }
     }
     return(null);
 }
 public IModbusWrapper Scan()
 {
     //01,02,03,04,05,06 have 6 + 2(CRC)
     //15,16 have 6 + 1(len) + len + 2(CRC)
     if (buffer.Count >= 8)
     {
         var code = buffer[1];
         CheckCode(code);
         var length = 8;
         if (HasBytesAt6(code))
         {
             length += 1 + buffer[6];
         }
         if (buffer.Count >= length)
         {
             var request = buffer.GetRange(0, length).ToArray();
             buffer.RemoveRange(0, length);
             return(protocol.Parse(request, 0));
         }
     }
     return(null); //not enough data to parse
 }