Go to the documentation of this file.00001
00006 #include "CheckSum.h"
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 void CheckSum::Add ( unsigned int value )
00019 {
00020 union
00021 {
00022 unsigned int value;
00023 unsigned char bytes[ 4 ];
00024 }
00025
00026 data;
00027 data.value = value;
00028
00029 for ( unsigned int i = 0; i < sizeof( data.bytes ); i++ )
00030 Add ( data.bytes[ i ] )
00031
00032 ;
00033 }
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 void CheckSum::Add ( unsigned short value )
00046 {
00047 union
00048 {
00049 unsigned short value;
00050 unsigned char bytes[ 2 ];
00051 }
00052
00053 data;
00054 data.value = value;
00055
00056 for ( unsigned int i = 0; i < sizeof( data.bytes ); i++ )
00057 Add ( data.bytes[ i ] )
00058
00059 ;
00060 }
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072 void CheckSum::Add ( unsigned char value )
00073 {
00074 unsigned char cipher = (unsigned char)( value ^ ( r >> 8 ) );
00075 r = ( cipher + r ) * c1 + c2;
00076 sum += cipher;
00077 }
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091 void CheckSum::Add ( unsigned char *b, unsigned int length )
00092 {
00093 for ( unsigned int i = 0; i < length; i++ )
00094 Add ( b[ i ] )
00095
00096 ;
00097 }