I have a customer that we need to send data files to using their
format. Below is a C routine they sent us for computing a CRC. I
tranlated it to the best of my ability to VB6 but can't reproduce their
results.
Here is the C routine.
#define CRC16_POLYNOMIA L 0xA001
crc16(INT16U byte, INT16U crc)
{
INT16U i;
INT16U crc_bit16;
for (i=0;<8;i++)
{
crc_bit16=((crc &0x01)^(byte&0x 01));
crc=crc>>1;
if (crc_bit16)
{
crc=(crc^CRC16_ POLYNOMIAL);
}
byte=byte>>1;
}
return(crc);
}
Here is my VB6 code
Function CRC(CRCIn As Long, ByteIn As Byte) As Long
Const CRC16Polynomial = &HA001
Dim CRCBit16 As Integer
Dim I As Integer
Dim WrkByte As Integer
Dim WrkCRC As Long
WrkByte = ByteIn
WrkCRC = CRCIn
For I = 0 To 7
CRCBit16 = ((WrkCRC And &H1) Xor (WrkByte And &H1))
WrkCRC = ShiftRight(WrkC RC, 1)
If CRCBit16 <> 0 Then
WrkCRC = (WrkCRC Xor CRC16Polynomial )
End If
WrkByte = ShiftRight(WrkB yte, 1)
Next I
CRC = WrkCRC
END Function
And here is the routine that passes each byte through the CRC routine.
CRCIn = 0
CRC16 = 0
Open "C:\vbasic\shif t.src\Page0.bin " For Binary As #1
For I = 1 To 30
A$ = Input(1, 1)
ByteIn = Asc(A$)
CRCIn = CRC16
CRC16 = CRC(CRCIn, ByteIn)
Next I
Page0.bin is a small 32 byte file as shown below. The last 2 bytes are
the CRC as computed by my customers C routine. From looking through
more of their code it appears the CRC is stored as an inverse for some
reason using C's ~ inverse operator.
31 07 49 6E 73 74 72 6F
6E 06 49 6E 53 70 65 63
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF 19 95
I thought the source of the error is in my ShiftRight routine. I tried
roughly 6 different routines claiming to be C's >> equivelent and always
get the same results. Any help is appreciated. 17 5223
milesh wrote: I have a customer that we need to send data files to using their format. Below is a C routine they sent us for computing a CRC. I tranlated it to the best of my ability to VB6 but can't reproduce their results.
Here is the C routine.
<snip>
Some people might eventually answer this question, but I think it would
also be appropriate to post in comp.programmin g as well.
Where is the shiftright routine?
Show us the code!
Cheers
A.
"milesh" <mi****@unliste dspam.com> wrote in message
news:bm*******@ dispatch.concen tric.net... I have a customer that we need to send data files to using their format. Below is a C routine they sent us for computing a CRC. I tranlated it to the best of my ability to VB6 but can't reproduce their results.
Here is the C routine.
#define CRC16_POLYNOMIA L 0xA001 crc16(INT16U byte, INT16U crc) { INT16U i; INT16U crc_bit16; for (i=0;<8;i++) { crc_bit16=((crc &0x01)^(byte&0x 01)); crc=crc>>1; if (crc_bit16) { crc=(crc^CRC16_ POLYNOMIAL); } byte=byte>>1; } return(crc); }
Here is my VB6 code
Function CRC(CRCIn As Long, ByteIn As Byte) As Long
Const CRC16Polynomial = &HA001 Dim CRCBit16 As Integer Dim I As Integer Dim WrkByte As Integer Dim WrkCRC As Long
WrkByte = ByteIn WrkCRC = CRCIn For I = 0 To 7 CRCBit16 = ((WrkCRC And &H1) Xor (WrkByte And &H1)) WrkCRC = ShiftRight(WrkC RC, 1) If CRCBit16 <> 0 Then WrkCRC = (WrkCRC Xor CRC16Polynomial ) End If WrkByte = ShiftRight(WrkB yte, 1) Next I CRC = WrkCRC
END Function
And here is the routine that passes each byte through the CRC routine.
CRCIn = 0 CRC16 = 0 Open "C:\vbasic\shif t.src\Page0.bin " For Binary As #1 For I = 1 To 30 A$ = Input(1, 1) ByteIn = Asc(A$) CRCIn = CRC16 CRC16 = CRC(CRCIn, ByteIn) Next I
Page0.bin is a small 32 byte file as shown below. The last 2 bytes are the CRC as computed by my customers C routine. From looking through more of their code it appears the CRC is stored as an inverse for some reason using C's ~ inverse operator.
31 07 49 6E 73 74 72 6F 6E 06 49 6E 53 70 65 63 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 19 95
I thought the source of the error is in my ShiftRight routine. I tried roughly 6 different routines claiming to be C's >> equivelent and always get the same results. Any help is appreciated.
It might be that "INT16U" not corresopnds to VB:s "int". int16u is
possible a 16 bit unsigned integer, it might be declared like this
somewhere in their code: "typedef unsigned int int16u;" or maybe they
uses "systemC".
This might give you problem width the rightShift. For unsigned values,
the left most bit is always replaced with zeros after shift, but if
the value is signed, the left most bit is either replaced by ones (if
the leftmost bit is a one before the shift) or zeros (if the left most
bit is a zero before the shift). So, you need not an int, but an
unsigned int with 16 bytes. (I think vb int is 32 bit?)
If this can't be achived by vb, then you should implement your own
shift routine. A strange this is, that if vb int is 32 bits, this
should have no effect, and everythis should work out fine (if you do
less than 16 shifts)... (If int is 16 bit in vb, try first to replace
your integers width long.)
milesh <mi****@unliste dspam.com> wrote in message news:<bm******* @dispatch.conce ntric.net>... I have a customer that we need to send data files to using their format. Below is a C routine they sent us for computing a CRC. I tranlated it to the best of my ability to VB6 but can't reproduce their results.
Here is the C routine.
#define CRC16_POLYNOMIA L 0xA001 crc16(INT16U byte, INT16U crc) { INT16U i; INT16U crc_bit16; for (i=0;<8;i++) { crc_bit16=((crc &0x01)^(byte&0x 01)); crc=crc>>1; if (crc_bit16) { crc=(crc^CRC16_ POLYNOMIAL); } byte=byte>>1; } return(crc); }
Here is my VB6 code
Function CRC(CRCIn As Long, ByteIn As Byte) As Long
Const CRC16Polynomial = &HA001 Dim CRCBit16 As Integer Dim I As Integer Dim WrkByte As Integer Dim WrkCRC As Long
WrkByte = ByteIn WrkCRC = CRCIn For I = 0 To 7 CRCBit16 = ((WrkCRC And &H1) Xor (WrkByte And &H1)) WrkCRC = ShiftRight(WrkC RC, 1) If CRCBit16 <> 0 Then WrkCRC = (WrkCRC Xor CRC16Polynomial ) End If WrkByte = ShiftRight(WrkB yte, 1) Next I CRC = WrkCRC
END Function
And here is the routine that passes each byte through the CRC routine.
CRCIn = 0 CRC16 = 0 Open "C:\vbasic\shif t.src\Page0.bin " For Binary As #1 For I = 1 To 30 A$ = Input(1, 1) ByteIn = Asc(A$) CRCIn = CRC16 CRC16 = CRC(CRCIn, ByteIn) Next I
Page0.bin is a small 32 byte file as shown below. The last 2 bytes are the CRC as computed by my customers C routine. From looking through more of their code it appears the CRC is stored as an inverse for some reason using C's ~ inverse operator.
31 07 49 6E 73 74 72 6F 6E 06 49 6E 53 70 65 63 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 19 95
I thought the source of the error is in my ShiftRight routine. I tried roughly 6 different routines claiming to be C's >> equivelent and always get the same results. Any help is appreciated.
On 17 Oct 2003 00:34:35 -0700, d9****@efd.lth. se (Andreas) wrote: It might be that "INT16U" not corresopnds to VB:s "int". int16u is possible a 16 bit unsigned integer, it might be declared like this somewhere in their code: "typedef unsigned int int16u;" or maybe they uses "systemC".
This might give you problem width the rightShift. For unsigned values, the left most bit is always replaced with zeros after shift, but if the value is signed, the left most bit is either replaced by ones (if the leftmost bit is a one before the shift) or zeros (if the left most bit is a zero before the shift). So, you need not an int, but an unsigned int with 16 bytes. (I think vb int is 32 bit?)
VB Int is 16 bit If this can't be achived by vb, then you should implement your own shift routine. A strange this is, that if vb int is 32 bits, this should have no effect, and everythis should work out fine (if you do less than 16 shifts)... (If int is 16 bit in vb, try first to replace your integers width long.)
Or use a UDT - shove the low bytes into a 4 byte UDT
then Lset that into a UDT holding a Long, and multiply the Long by
two
milesh <mi****@unliste dspam.com> wrote in message news:<bm******* @dispatch.conce ntric.net>... I have a customer that we need to send data files to using their format. Below is a C routine they sent us for computing a CRC. I tranlated it to the best of my ability to VB6 but can't reproduce their results.
Here is the C routine.
#define CRC16_POLYNOMIA L 0xA001 crc16(INT16U byte, INT16U crc) { INT16U i; INT16U crc_bit16; for (i=0;<8;i++) { crc_bit16=((crc &0x01)^(byte&0x 01)); crc=crc>>1; if (crc_bit16) { crc=(crc^CRC16_ POLYNOMIAL); } byte=byte>>1; } return(crc); }
Here is my VB6 code
Function CRC(CRCIn As Long, ByteIn As Byte) As Long
Const CRC16Polynomial = &HA001 Dim CRCBit16 As Integer Dim I As Integer Dim WrkByte As Integer Dim WrkCRC As Long
WrkByte = ByteIn WrkCRC = CRCIn For I = 0 To 7 CRCBit16 = ((WrkCRC And &H1) Xor (WrkByte And &H1)) WrkCRC = ShiftRight(WrkC RC, 1) If CRCBit16 <> 0 Then WrkCRC = (WrkCRC Xor CRC16Polynomial ) End If WrkByte = ShiftRight(WrkB yte, 1) Next I CRC = WrkCRC
END Function
And here is the routine that passes each byte through the CRC routine.
CRCIn = 0 CRC16 = 0 Open "C:\vbasic\shif t.src\Page0.bin " For Binary As #1 For I = 1 To 30 A$ = Input(1, 1) ByteIn = Asc(A$) CRCIn = CRC16 CRC16 = CRC(CRCIn, ByteIn) Next I
Page0.bin is a small 32 byte file as shown below. The last 2 bytes are the CRC as computed by my customers C routine. From looking through more of their code it appears the CRC is stored as an inverse for some reason using C's ~ inverse operator.
31 07 49 6E 73 74 72 6F 6E 06 49 6E 53 70 65 63 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 19 95
I thought the source of the error is in my ShiftRight routine. I tried roughly 6 different routines claiming to be C's >> equivelent and always get the same results. Any help is appreciated.
Aristotelis E. Charalampakis wrote: Where is the shiftright routine?
Show us the code!
I have tried about 6 different shiftright routines searching on google.
All seemed to produce the same results so I'm not sure if thats where
the problem is. I keep thinking I must be overlooking something really
simple.
What do you get instead? It is difficult to identify a bug if you don't what the
output is, as well as what it should be. Maybe you are getting all zeros? Doubt
it, but don't know what you are getting.
"milesh" <mi****@unliste dspam.com> wrote in message
news:bm*******@ dispatch.concen tric.net... I have a customer that we need to send data files to using their format. Below is a C routine they sent us for computing a CRC. I tranlated it to the best of my ability to VB6 but can't reproduce their results.
Here is the C routine.
#define CRC16_POLYNOMIA L 0xA001 crc16(INT16U byte, INT16U crc) { INT16U i; INT16U crc_bit16; for (i=0;<8;i++) { crc_bit16=((crc &0x01)^(byte&0x 01)); crc=crc>>1; if (crc_bit16) { crc=(crc^CRC16_ POLYNOMIAL); } byte=byte>>1; } return(crc); }
Here is my VB6 code
Function CRC(CRCIn As Long, ByteIn As Byte) As Long
Const CRC16Polynomial = &HA001 Dim CRCBit16 As Integer Dim I As Integer Dim WrkByte As Integer Dim WrkCRC As Long
WrkByte = ByteIn WrkCRC = CRCIn For I = 0 To 7 CRCBit16 = ((WrkCRC And &H1) Xor (WrkByte And &H1)) WrkCRC = ShiftRight(WrkC RC, 1) If CRCBit16 <> 0 Then WrkCRC = (WrkCRC Xor CRC16Polynomial ) End If WrkByte = ShiftRight(WrkB yte, 1) Next I CRC = WrkCRC
END Function
And here is the routine that passes each byte through the CRC routine.
CRCIn = 0 CRC16 = 0 Open "C:\vbasic\shif t.src\Page0.bin " For Binary As #1 For I = 1 To 30 A$ = Input(1, 1) ByteIn = Asc(A$) CRCIn = CRC16 CRC16 = CRC(CRCIn, ByteIn) Next I
Page0.bin is a small 32 byte file as shown below. The last 2 bytes are the CRC as computed by my customers C routine. From looking through more of their code it appears the CRC is stored as an inverse for some reason using C's ~ inverse operator.
31 07 49 6E 73 74 72 6F 6E 06 49 6E 53 70 65 63 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 19 95
I thought the source of the error is in my ShiftRight routine. I tried roughly 6 different routines claiming to be C's >> equivelent and always get the same results. Any help is appreciated.
Steve Gerrard wrote: What do you get instead? It is difficult to identify a bug if you don't what the output is, as well as what it should be. Maybe you are getting all zeros? Doubt it, but don't know what you are getting.
The original post showed what I should get. The last 2 bytes of the 32
byte data. No, not getting all 0's, just not the 19 95 that I should.
I'm not at work now and don't have VB6 on this computer but will post
the result I get. I was hoping someone is skilled at both VB6 and C++
and could see what I may have translated wrong as I do not know C at
all. Just looked up the areas of question. My guess is that it has
something to do with C's unsigned integers and how that plays in with
C's >> shiftright routine. I understand how C handles it but not sure
how to translate it to VB6.
"Miles" <un*****@unlist edspam.com> wrote in message
news:NX3kb.2987 9$Rd4.2397@fed1 read07...
Steve Gerrard wrote: What do you get instead? It is difficult to identify a bug if you don't what
the output is, as well as what it should be. Maybe you are getting all zeros?
Doubt it, but don't know what you are getting.
The original post showed what I should get. The last 2 bytes of the 32 byte data. No, not getting all 0's, just not the 19 95 that I should. I'm not at work now and don't have VB6 on this computer but will post the result I get. I was hoping someone is skilled at both VB6 and C++ and could see what I may have translated wrong as I do not know C at all. Just looked up the areas of question. My guess is that it has something to do with C's unsigned integers and how that plays in with C's >> shiftright routine. I understand how C handles it but not sure how to translate it to VB6.
Found the snag. Your definition of the const in the VB version produces a
negative number, not the intended value:
Const CRC16Polynomial = &HA001 ' equals -24575 in VB, not 40961 as
desired.
Note that in addition to inverting all the bits at the end, the CRC is stored in
your sample file in low byte, high byte order (i.e. flipped), a common practice.
The following modified version of your VB code produces a CRC of H9519, as
desired:
Private Sub Command1_Click( )
Dim I As Integer
Dim CRC32 As Long
Dim CRC16 As Integer
Dim ByteIn As Byte
Dim A As String
Dim strIn() As String
'using a const instead of reading a file
Const Test As String = "&H31, &H07, &H49, &H6E, &H73, &H74, &H72, &H6F, &H6E,
&H06, &H49, &H6E, &H53, &H70, &H65, &H63, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF,
&HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF"
strIn = Split(Test, ",")
CRC32 = 0
For I = 0 To 29
A = strIn(I)
ByteIn = CInt(A)
CRC32 = CRC(CRC32, ByteIn)
Next I
'invert all bits
CRC32 = (CRC32 Xor &HFFFF)
'now get the 16 bit version
CRC16 = CRC32
Debug.Print CRC16, Hex(CRC16)
End Sub
Function CRC(CRCIn As Long, ByteIn As Byte) As Long
Const CRC16Polynomial As Long = 40961
Dim Bit As Boolean
Dim I As Integer
Dim WrkByte As Integer
Dim WrkCRC As Long
WrkByte = ByteIn
WrkCRC = CRCIn
For I = 0 To 7
Bit = ((WrkCRC And &H1) Xor (WrkByte And &H1))
WrkCRC = WrkCRC \ 2 'this is fine for shift right 1 bit
If Bit Then
WrkCRC = (WrkCRC Xor CRC16Polynomial )
End If
WrkByte = WrkByte \ 2
Next I
CRC = WrkCRC
End Function
That was fun.
Steve
Steve Gerrard wrote: "Miles" <un*****@unlist edspam.com> wrote in message news:NX3kb.2987 9$Rd4.2397@fed1 read07...
Steve Gerrard wrote:
What do you get instead? It is difficult to identify a bug if you don't what the output is, as well as what it should be. Maybe you are getting all zeros? Doubt it, but don't know what you are getting.
The original post showed what I should get. The last 2 bytes of the 32 byte data. No, not getting all 0's, just not the 19 95 that I should. I'm not at work now and don't have VB6 on this computer but will post the result I get. I was hoping someone is skilled at both VB6 and C++ and could see what I may have translated wrong as I do not know C at all. Just looked up the areas of question. My guess is that it has something to do with C's unsigned integers and how that plays in with C's >> shiftright routine. I understand how C handles it but not sure how to translate it to VB6.
Found the snag. Your definition of the const in the VB version produces a negative number, not the intended value: Const CRC16Polynomial = &HA001 ' equals -24575 in VB, not 40961 as desired.
Note that in addition to inverting all the bits at the end, the CRC is stored in your sample file in low byte, high byte order (i.e. flipped), a common practice. The following modified version of your VB code produces a CRC of H9519, as desired:
Private Sub Command1_Click( ) Dim I As Integer Dim CRC32 As Long Dim CRC16 As Integer Dim ByteIn As Byte Dim A As String Dim strIn() As String
'using a const instead of reading a file
Const Test As String = "&H31, &H07, &H49, &H6E, &H73, &H74, &H72, &H6F, &H6E, &H06, &H49, &H6E, &H53, &H70, &H65, &H63, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF"
strIn = Split(Test, ",")
CRC32 = 0 For I = 0 To 29 A = strIn(I) ByteIn = CInt(A) CRC32 = CRC(CRC32, ByteIn) Next I
'invert all bits CRC32 = (CRC32 Xor &HFFFF) 'now get the 16 bit version CRC16 = CRC32 Debug.Print CRC16, Hex(CRC16)
End Sub
Function CRC(CRCIn As Long, ByteIn As Byte) As Long
Const CRC16Polynomial As Long = 40961 Dim Bit As Boolean Dim I As Integer Dim WrkByte As Integer Dim WrkCRC As Long
WrkByte = ByteIn WrkCRC = CRCIn For I = 0 To 7 Bit = ((WrkCRC And &H1) Xor (WrkByte And &H1)) WrkCRC = WrkCRC \ 2 'this is fine for shift right 1 bit If Bit Then WrkCRC = (WrkCRC Xor CRC16Polynomial ) End If WrkByte = WrkByte \ 2 Next I CRC = WrkCRC
End Function
That was fun. Steve This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: RootShell |
last post by:
Dear All
Im having some dificulty here:
I found a great PHP code by Catalin Mihaila that reads a SRC (Sinclair
Spectrum $SCREEN Image Format) and tranforms it into PNG format to show
onscreen by the PHP gd2 Library.
The problem is that im trying to translate the 'fread' structure into a
MySQL blob reading, as follows:
|
by: Davis Marques |
last post by:
hi;
I'm translating some PHP scripts to Python and have hit a roadblock
with a for statement. If someone could explain to me how one should
translate the multiple increment, evaluations, etc. in the first line
I would appreciate it deeply ...
for ($y = 0, $x = $cx-$cy-1; $y <= $cy; ++$y,++$x) {
$prd = $q * $y_ar + $car;
$prd -= ($car = intval($prd / 1E7)) * 1E7;
|
by: Jules |
last post by:
Is anyone able to translate the following PHP to ASP ? or come up with
something that would work.
The reason for the code is that I'm using Indexing service to create a
search engine on a company intranet. Unfortunately the Find.asp is
bringing back the location of the link as its place on the server (eg
C://Inetpub/www etc rather than a nice URL that works. I've been told
this code may help but its in PHP. Thanks...
|
by: Anuj Mathur |
last post by:
Hello All
We are making an application for translating the literals
(HTML text and labels) of an existing ASP website from
English to another language, say Swedish.
Now, for this we are employing XML document to store the
literals and their translations. The literals are passed
as string parameters to a translation routine that picks
up the translated value from the XML. The XML has a ID-
|
by: gregf |
last post by:
I have a paragraph of text pasted into a word document, it's in Polish,
complete with polish characters. They show up just fine in word, but
the program I use for web page programming, HomeSite, won't translate
it. When I paste the text into the code, the special characters are
missing. If they would show up there I could use the Replace Special
Characters feature to change it to the proper code, but it won't even
paste into it...
| |
by: Carlo, MCP |
last post by:
Hello,
please, help me to translate these four lines of C# code in VB:
bool topLeft, topRight, bottomLeft, bottomRight;
int topLeftRadius, topRightRadius, bottomLeftRadius, bottomRightRadius;
topLeft = topRight = bottomLeft = bottomRight = true;
topLeftRadius = topRightRadius = bottomLeftRadius = bottomRightRadius =
workRadius;
|
by: Vyz |
last post by:
Hi,
I have a script with hundreds of lines of javascript spread accross 7
files. Is there any tool out there to automatically or
semi-automatically translate the code into python.
Thanks
Vyz
|
by: lombardm |
last post by:
I am trying to decipher/translate some code that I have no experience
with.
I am trying to find out how the checksum is computed for a Megellan
Explorist GPS Waypoint (POI) file. Below is the first 3 lines of a
typical
file. I understand everything except how the "a*23" at the end of the
line
is arrived at.
|
by: Andrus |
last post by:
I have database containing translations.
I'm creating VS 2005 WinForms application which should use this database to
translate menu items to user language.
I replaced lines in myform.designer.cs like
Text = "File";
to call my translating routine
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
| |
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
| |
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |