Прошу помощи в решении уже замучившего меня вопроса, с подсчетом контрольной суммы пакета. Работаю не программистом, но помогаю решать некоторые вопросы связанные с работой отдела.
В общем проблема в следующем, есть прибор отечественной разработки
Обратился я к ним за сопроводительной документацией, но мои знания не помогли разобраться в вопросе формирования контрольной суммы пакета, если на стадии приема я еще могу как то обойти эту сторону , то в случае записи параметров в устройство мне без этого не куда.
Программу закончил остался один не решенный вопрос с установкой сканируемой частоты, к сожалению без этого не куда.
Прослушал я программу которая идет в комплекте с прибором, и что я получил:
Есть массив байт
mass1
, пакет содержит информацию которая записывается в прибор:
byte[] mass1 = new byte[]{75,0,25,0,3,88,2,0,126,37,0,188,138,169,53,66,15,52,115,203,112,103,220,16,92,237,76,80,254};
В конце пакета дописываются 2 байта, что представляет из себя контрольную сумму этого пакета
mass2
:
byte[] mass2 = new byte[]{241,9};
Полное сообщение записываемое в прибор, должно иметь вид полный пакет имеет вид
mass3
:
byte[] mass3 = new byte[]{75,0,25,0,3,88,2,0,126,37,0,188,138,169,53,66,15,52,115,203,112,103,220,16,92,237,76,80,254,241,9};
Приведенный выше пакет
mass3
, производит установку значений в прибор. В документации про него не чего не сказано.
Так же я прослушал пакет который присылает прибор с уже имеющимися в нем установками, так скажем идентификационный
mass4
:
byte[] mass4 = new byte[] { 0x40, 0x00, 0x03, 0x58, 0x02, 0x00, 0x7E, 0x25, 0x00, 0xBC, 0x8A, 0xA9, 0x35, 0x42, 0x0F, 0x34, 0x73, 0xCB, 0x70, 0x67, 0xDC, 0x10, 0x5C, 0xED, 0x4C, 0x50, 0xFE, 0x00, 0x45, 0x29, 0x51, 0x09, 0x11, 0x03, 0x28, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x16, 0x20, 0x50, 0x33, 0x34, 0x31, 0x2D, 0x34, 0x32, 0x36, 0x00, 0x32, 0x36, 0x2E, 0x31, 0x30, 0x2E, 0x30, 0x36, 0x2D, 0x31, 0x33, 0x00, 0x06, 0x0F };
На него есть описание в документации, принцип тот же последние 2 байта пакета это контрольная сумма, все остальное информационная часть.
Помогите пожалуйста решить вопрос с написанием кода подсчета контрольной суммы, в любом виде главное что бы в возвращаемом значении присутствовала верная контрольная сумма. Я просто уже не понимаю что я делаю не так, CRC-16 побывал, но желаемого результата не получил.
Если кто то решится помочь, для проверки пакеты mass аналогичны mass3, только с измененными параметрами для записи в прибор, последние 2 байта контрольная сумма:
byte[] mass = new byte[]{75,0,25,0,3,48,117,0,126,37,0,188,138,169,53,66,15,52,115,203,112,103,220,16,92,237,76,80,254,60,10};
byte[] mass = new byte[]{75,0,25,0,3,64,156,0,126,37,0,188,138,169,245,165,14,52,115,203,96,64,220,16,92,237,76,80,254,94,11};
byte[] mass = new byte[]{75,0,25,0,3,80,195,0,126,37,0,88,138,169,181,9,14,52,115,203,120,60,220,32,131,237,236,214,255,199,11};
byte[] mass = new byte[]{75,0,25,0,3,112,17,1,126,37,0,88,138,169,181,9,14,52,115,203,120,60,220,32,131,237,236,214,255,54,11};
byte[] mass = new byte[]{75,0,25,0,3,60,134,1,126,37,0,88,138,169,181,9,14,52,115,203,120,60,220,32,131,237,236,214,255,119,11};
Документация, которую мне прислал завод изготовитель