1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| //private HashManager m_hm = new HashManager()
public void CalcFCS(string sCrcHexa, string sLsb, string sMsb, string sSendData, string sCrcFinal)
{
try
{
uint uFlags = this.PackCurrentFlags();
byte[] pbData = HexStringToByteArray(sCrcHexa);
m_hm.InitHashes();
m_hm.UpdateHashes(pbData, (ulong)pbData.Length, true);
m_hm.FinalizeHashes();
//Permet d'avoir le FCS 16bit
sCrcFinal = ReHashTools.ReportHashes(m_hm, uFlags);
//Permet d'avoir juste les deux octets du MSB
StringBuilder sbMSB = new StringBuilder(sCrcFinal, 2, 2, 0);
sMsb = sbMSB.ToString();
//Permet d'avoir juste les deux octets du LSB
StringBuilder sbLSB = new StringBuilder(sCrcFinal, 0, 2, 0);
sLsb = sbLSB.ToString();
// Tres efficace, permet de copier la valeur du crc a calculer...
sSendData = sCrcHexa.ToUpper() + " " + sMsb.ToUpper() + " " + sLsb.ToUpper() + " " + "7E";
}
catch (Exception)
{
MessageBox.Show("Vérifier votre chaine Hexa", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
} |
Partager