سؤال

أنا أتصل بجهاز عبر المسلسل عبر فئة Serialport من .NET واستنادا إلى متطلبات مواصفات الجهاز لجهة خارجية أحتاج لحساب "حرف فحص الكتلة". المعلومات الوحيدة التي أخبرتها هي أنه حصرية أو عملية (XOR) ويجب أن يتم تنفيذها على جميع الشخصيات.

لذلك إذا كان لدي سلسلة "BOB، 001" كيف لحساب المرء BCC؟

هل كانت مفيدة؟

المحلول

على الأرجح هي XOR الشخصية. ستحتاج إلى الحصول على عينات منهم للتحقق ولكن عادة ما ينتهي معظم المجموعات الاختباري في 0.

لذلك، للحصول على المجموع الاختباري XOR، سيكون لديك الحزمة:

Bob,001X

حيث X هو المجموع الاختباري، وعندما تقوم ببعض هذه الأحرف معا، فمن المرجح أن تحصل على 0.

لذلك، للعمل x، أنت فقط xor جميع الشخصيات في "بوب، 001". هذا بحكم حقيقة أن N XOR N هو دائما 0، لأي n.

الآن قد يكون X أن X سيكون شخصين عرافة إذا سمح لهم أن يكون لديهم is alphanumerics. لهذا السبب تحتاج إليك إما عينة البيانات (حتى نتمكن من عملها) أو المواصفات المناسبة (التي ينبغي توفيرها بواسطة الشركة المصنعة للجهاز).

ماذا يكون الجهاز الفعلي الذي تشير إليه؟ قد يكون هناك معلومات على الويب الذي يوضح كيفية القيام بذلك.

بناء على التحديث:

إنه جهاز PMS ضيافة Amadeus. لا كل ما يقولون أنه يجب أن يتم تنفيذها على جميع الأحرف. باستثناء STX و ETX.

ستحتاج إلى الحصول على بعض البيانات الأساسية للتأكيد ولكن من المحتمل أن تدفق البيانات شيئا مثل:

        Running
Data     ChkSum
======  =======
STX 02
B   42     42
o   6f     2d
b   62     4f
,   2c     63
0   30     53
0   30     63
1   31     52
4   52     00
ETX 03

قد يختلف موقف المجموع الاختباري، وفي الواقع، قد يختلف عملية الحساب أيضا إلى أن هذا أقل احتمالا. لا أعتقد أنه يمكن إجراء المزيد من المعلومات دون عينة البيانات أو مزيد من المعلومات من البائع. تحول البحث عن السريعة على الإنترنت أي تفاصيل فنية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top