ورود

View Full Version : سوال: تبدیل کد بیسیک به فاکس



mn3250
چهارشنبه 27 آبان 1388, 10:46 صبح
دوستان کد زیر رو چطور به فاکس تبدیل کنم؟



CONST INTEGER crctbl = (&H0000,&H1189,&H2312,&H329B,&H4624,&H57AD,&H6536,&H74BF,
&H8C48,&H9DC1,&HAF5A,&HBED3,&HCA6C,&HDBE5,&HE97E,&HF8F7,
&H1081,&H0108,&H3393,&H221A,&H56A5,&H472C,&H75B7,&H643E,
&H9CC9,&H8D40,&HBFDB,&HAE52,&HDAED,&HCB64,&HF9FF,&HE876,
&H2102,&H308B,&H0210,&H1399,&H6726,&H76AF,&H4434,&H55BD,
&HAD4A,&HBCC3,&H8E58,&H9FD1,&HEB6E,&HFAE7,&HC87C,&HD9F5,
&H3183,&H200A,&H1291,&H0318,&H77A7,&H662E,&H54B5,&H453C,
&HBDCB,&HAC42,&H9ED9,&H8F50,&HFBEF,&HEA66,&HD8FD,&HC974,
&H4204,&H538D,&H6116,&H709F,&H0420,&H15A9,&H2732,&H36BB,
&HCE4C,&HDFC5,&HED5E,&HFCD7,&H8868,&H99E1,&HAB7A,&HBAF3,
&H5285,&H430C,&H7197,&H601E,&H14A1,&H0528,&H37B3,&H263A,
&HDECD,&HCF44,&HFDDF,&HEC56,&H98E9,&H8960,&HBBFB,&HAA72,
&H6306,&H728F,&H4014,&H519D,&H2522,&H34AB,&H0630,&H17B9,
&HEF4E,&HFEC7,&HCC5C,&HDDD5,&HA96A,&HB8E3,&H8A78,&H9BF1,
&H7387,&H620E,&H5095,&H411C,&H35A3,&H242A,&H16B1,&H0738,
&HFFCF,&HEE46,&HDCDD,&HCD54,&HB9EB,&HA862,&H9AF9,&H8B70,
&H8408,&H9581,&HA71A,&HB693,&HC22C,&HD3A5,&HE13E,&HF0B7,
&H0840,&H19C9,&H2B52,&H3ADB,&H4E64,&H5FED,&H6D76,&H7CFF,
&H9489,&H8500,&HB79B,&HA612,&HD2AD,&HC324,&HF1BF,&HE036,
&H18C1,&H0948,&H3BD3,&H2A5A,&H5EE5,&H4F6C,&H7DF7,&H6C7E,
&HA50A,&HB483,&H8618,&H9791,&HE32E,&HF2A7,&HC03C,&HD1B5,
&H2942,&H38CB,&H0A50,&H1BD9,&H6F66,&H7EEF,&H4C74,&H5DFD,
&HB58B,&HA402,&H9699,&H8710,&HF3AF,&HE226,&HD0BD,&HC134,
&H39C3,&H284A,&H1AD1,&H0B58,&H7FE7,&H6E6E,&H5CF5,&H4D7C,
&HC60C,&HD785,&HE51E,&HF497,&H8028,&H91A1,&HA33A,&HB2B3,
&H4A44,&H5BCD,&H6956,&H78DF,&H0C60,&H1DE9,&H2F72,&H3EFB,
&HD68D,&HC704,&HF59F,&HE416,&H90A9,&H8120,&HB3BB,&HA232,
&H5AC5,&H4B4C,&H79D7,&H685E,&H1CE1,&H0D68,&H3FF3,&H2E7A,
&HE70E,&HF687,&HC41C,&HD595,&HA12A,&HB0A3,&H8238,&H93B1,
&H6B46,&H7ACF,&H4854,&H59DD,&H2D62,&H3CEB,&H0E70,&H1FF9,
&HF78F,&HE606,&HD49D,&HC514,&HB1AB,&HA022,&H92B9,&H8330,
&H7BC7,&H6A4E,&H58D5,&H495C,&H3DE3,&H2C6A,&H1EF1,&H0F78)

Dim Source(32) As Byte 'the global string to make CRC from
Dim crcval As Integer

Source = Chr(31)+Chr(13)+Chr(0)+Chr(0)+"Hello World"
crcval = GetCRC(15) '15 bytes in source array
Source(15) = crcval.BYTE0 'using little endian here
Source(16) = crcval.BYTE1 'add crc to end of message

'now send it over the serial port

End 'end of main program

Function GetCRC(Len As Integer) As Integer
Dim i As Integer 'index into byte string
Dim temp As Integer 'temporary CRC var
temp = &HFFFF 'initial value of CRC
For i = 0 to (Len - 1)
temp = (temp >> 8) ^ crctbl((temp.BYTE0 ^ Source(i)) AND &HFF);
Next
GetCRC = temp XOR &HFFFF 'invert the result
End Function


بعد باید به نمایشگر روی com1 ارسال بشه.
قبلا تشکر میکنم.

mn3250
چهارشنبه 27 آبان 1388, 10:49 صبح
اینهم کد سی:

http://www.crystalfontz.com/product/WinTest.html

البته سی تست شده و بخوبی کار میکنه. با استفاده از کد:



nHandle = fopen("COM1:19200,n,8,1",2)
=fflush(nHandle)

* Send Command
text1 = "Hello World"
nRet = fputs(nHandle,text1)
=fclose(nHandle)


میشه پیام رو ارسال کرد اما تبدیل به مطالب نامفهوم میشه. گمانم بدون محاسبه CRC ممکن نباشه.
ممنون.