473,396 Members | 1,666 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Why is this simple addition throwing an overflow exception?

Hello All,
Please, if anyone can point me to the problem, I'd sure appreciate it!
I am very new to VB programming and not a programmer to begin with.
This is part of a Visual Basic 2005 Express Edition program to control a remote basketball
scoreboard display unit.

All I'm trying to do is add 5 byte variables and store the result in an integer
variable. I added a Try/Catch block to take look at things.
This exception occurs only when the clock runs down to 00:00 and when one of either
SndT1 or SndT2 are some non zero value. The value of 15 for SndMin is due to the program
automatically starting a halftime clock that starts at 15:00.

CkSum = SndMin + SndSec + SndT1 + SndT2 + SndPer <--- The offending line of code
CkSum = 15 + 0 + 99 + 99 + 130 = 343 <-- Values are from the texbox in the catch block
The catch block shows CkSum = 200, but 200 is just the value left from the last addition that worked.
The variable declrations and the entire sub where the exception is originating were pasted
below from the program code.

TIA
Mike

This is the output displayed in the textbox by the catch block.

CkSum = 200 SndT1f = 9 HornTime = 1 SndT2f = 9 SndPer = 130 SndT1 = 99 SndT2 = 99 SndMin = 15
SndSec = 0 ex = System.OverflowException: Arithmetic operation resulted in an overflow.
at ScoreBoard.Form1.SendPacket() in C:\Documents and Settings\Administrator\My Documents\Visual Studio
2005\Projects\ScoreBoard1\ScoreBoard\Form1.vb:line 552
These are are variable declarations involved

Public Class Form1

Inherits System.Windows.Forms.Form
Dim SndMin, SndSec, SndT1, SndT2, SndPer As Byte
Dim SndT1f, SndT2f, SndHrn, SndCkSum As Byte
Dim CkSum as Integer
Dim PacketData() As Byte = {&H55, &HCC, 0, 0, 0, 0, 0, 0, 0, 0, 0}

Public ClockMode As Byte = 0
Public Period As Byte = 1
Public HornTime As Byte = 2
Public T1score As Byte = 0
Public T2score As Byte = 0
Public T1Fouls As Byte = 0
Public T2Fouls As Byte = 0
Public Mins As Byte = 0
Public Secs As Byte = 0
This is the sub in which the overflow exception occurs

'This routine builds a data packet to send to the remote display assembly

Private Sub SendPacket()
SndT1 = T1score : SndT2 = T2score : SndPer = Period : SndHrn = HornTime
SndMin = Mins : SndSec = Secs : SndT1f = T1Fouls : SndT2f = T2Fouls
If ClockMode = 1 Then ' See if a timeout has been called
SndPer = CByte(SndPer Or &H80) ' Turn on the flash LED flag bit
End If
Try
If ExtDisp = True Then ' Prepare a packet if using an extended display

'Calculate a simple checksum to add to the end of the packet

The following line will also cause an exception if I change ExtDisp to True.

SndCkSum = CByte(SndMin + SndSec + SndT1 + SndT2 + SndPer + SndT1f + SndT2f)

' Load the 7 data bytes and the checksum byte into the data packet array
' PacketData(0) and PacketData (1) are initialized to &H55 and &Hcc
' respectively to form a constant 2 byte header for the packet

PacketData(2) = SndMin : PacketData(3) = SndSec : PacketData(4) = SndT1
PacketData(5) = SndT2 : PacketData(6) = SndPer : PacketData(7) = SndT1f
PacketData(8) = SndT2f : PacketData(9) = SndCkSum

Else ' Prepare a packet for a standard display

'Calculate a simple checksum to add to the end of the data packet

This is the line causing the error.
Line 552
********-- CkSum = SndMin + SndSec + SndT1 + SndT2 + SndPer

SndCkSum = CByte(CkSum) ' Explicitly convert the checksum to a byte

' Load the 5 data bytes and the checksum byte into the packet array
' PacketData(0) and PacketData (1) are initialized to &H55 and &Hcc
' respectively to form a constant 2 byte header for the packet

PacketData(2) = SndMin : PacketData(3) = SndSec : PacketData(4) = SndT1
PacketData(5) = SndT2 : PacketData(6) = SndPer : PacketData(7) = SndCkSum
End If

' Send the data packet to the display

Call SendSerialData(PacketData)

' Reset the horn on flag if it was set

If HornTime &H7F Then HornTime = CByte(HornTime - &H80)

Catch ex As OverflowException
Dim Str As String
TextBox3.Visible = True
Str = "CkSum = " + CkSum.ToString + " SndT1f = " + SndT1f.ToString + " " _
+ "HornTime = " + HornTime.ToString + " SndT2f = " + SndT2f.ToString + " " _
+ "SndPer = " + SndPer.ToString + " " _
+ "SndT1 = " + SndT1.ToString + " SndT2 = " + SndT2.ToString + " " _
+ "SndMin = " + SndMin.ToString + " SndSec = " + SndSec.ToString + _
" ex = " + ex.ToString + " "
TextBox3.Text = Str
Timer1.Stop()
End Try
End Sub


"The scientist is possessed by the sense of universal
causation...His religious feeling takes the form of
rapturous amazement at the harmony of natural law,
which reveals the intelligence of such superiority
that, compared with it, systematic thinking and acting
of human beings is an utterly insignificant reflection."
Albert Einstein (theoretical physicist)
Nov 26 '06 #1
5 4559
The overflow is occuring when you are attempting to convert the check sum
into a byte. The addition is working, but the total is 255, which causes
an overflow inside the CByte function. I suspect you really want the
following:

SndCkSum = CByte((SndMin + SndSec + SndT1 + SndT2 + SndPer + SndT1f +
SndT2f) mod 256)

Mike Ober.
"Mike" <no********@comcast.netwrote in message
news:gh********************************@4ax.com...
Hello All,
Please, if anyone can point me to the problem, I'd sure appreciate it!
I am very new to VB programming and not a programmer to begin with.
This is part of a Visual Basic 2005 Express Edition program to control a
remote basketball
scoreboard display unit.

All I'm trying to do is add 5 byte variables and store the result in an
integer
variable. I added a Try/Catch block to take look at things.
This exception occurs only when the clock runs down to 00:00 and when one
of either
SndT1 or SndT2 are some non zero value. The value of 15 for SndMin is due
to the program
automatically starting a halftime clock that starts at 15:00.

CkSum = SndMin + SndSec + SndT1 + SndT2 + SndPer <--- The offending
line of code
CkSum = 15 + 0 + 99 + 99 + 130 = 343 <-- Values are from
the texbox in the catch block
The catch block shows CkSum = 200, but 200 is just the value left from the
last addition that worked.
>

The variable declrations and the entire sub where the exception is
originating were pasted
below from the program code.

TIA
Mike

This is the output displayed in the textbox by the catch block.

CkSum = 200 SndT1f = 9 HornTime = 1 SndT2f = 9 SndPer = 130
SndT1 = 99 SndT2 = 99 SndMin = 15
SndSec = 0 ex = System.OverflowException: Arithmetic operation resulted
in an overflow.
at ScoreBoard.Form1.SendPacket() in C:\Documents and
Settings\Administrator\My Documents\Visual Studio
2005\Projects\ScoreBoard1\ScoreBoard\Form1.vb:line 552
These are are variable declarations involved

Public Class Form1

Inherits System.Windows.Forms.Form
Dim SndMin, SndSec, SndT1, SndT2, SndPer As Byte
Dim SndT1f, SndT2f, SndHrn, SndCkSum As Byte
Dim CkSum as Integer
Dim PacketData() As Byte = {&H55, &HCC, 0, 0, 0, 0, 0, 0, 0, 0, 0}

Public ClockMode As Byte = 0
Public Period As Byte = 1
Public HornTime As Byte = 2
Public T1score As Byte = 0
Public T2score As Byte = 0
Public T1Fouls As Byte = 0
Public T2Fouls As Byte = 0
Public Mins As Byte = 0
Public Secs As Byte = 0
This is the sub in which the overflow exception occurs

'This routine builds a data packet to send to the remote display
assembly
>
Private Sub SendPacket()
SndT1 = T1score : SndT2 = T2score : SndPer = Period : SndHrn =
HornTime
SndMin = Mins : SndSec = Secs : SndT1f = T1Fouls : SndT2f =
T2Fouls
If ClockMode = 1 Then ' See if a timeout has been called
SndPer = CByte(SndPer Or &H80) ' Turn on the flash LED flag
bit
End If
Try
If ExtDisp = True Then ' Prepare a packet if using an
extended display
>
'Calculate a simple checksum to add to the end of the
packet
>
The following line will also cause an exception if I change ExtDisp to
True.
>
SndCkSum = CByte(SndMin + SndSec + SndT1 + SndT2 + SndPer
+ SndT1f + SndT2f)
>
' Load the 7 data bytes and the checksum byte into the
data packet array
' PacketData(0) and PacketData (1) are initialized to &H55 and &Hcc
' respectively to form a constant 2 byte header for the packet

PacketData(2) = SndMin : PacketData(3) = SndSec :
PacketData(4) = SndT1
PacketData(5) = SndT2 : PacketData(6) = SndPer :
PacketData(7) = SndT1f
PacketData(8) = SndT2f : PacketData(9) = SndCkSum

Else ' Prepare a packet for a standard display

'Calculate a simple checksum to add to the end of the data
packet
>
This is the line causing the error.
Line 552
********-- CkSum = SndMin + SndSec + SndT1 + SndT2 + SndPer

SndCkSum = CByte(CkSum) ' Explicitly convert the
checksum to a byte
>
' Load the 5 data bytes and the checksum byte into the
packet array
' PacketData(0) and PacketData (1) are initialized to &H55 and &Hcc
' respectively to form a constant 2 byte header for the packet

PacketData(2) = SndMin : PacketData(3) = SndSec :
PacketData(4) = SndT1
PacketData(5) = SndT2 : PacketData(6) = SndPer :
PacketData(7) = SndCkSum
End If

' Send the data packet to the display

Call SendSerialData(PacketData)

' Reset the horn on flag if it was set

If HornTime &H7F Then HornTime = CByte(HornTime - &H80)

Catch ex As OverflowException
Dim Str As String
TextBox3.Visible = True
Str = "CkSum = " + CkSum.ToString + " SndT1f = " +
SndT1f.ToString + " " _
+ "HornTime = " + HornTime.ToString + " SndT2f = " +
SndT2f.ToString + " " _
+ "SndPer = " + SndPer.ToString + " " _
+ "SndT1 = " + SndT1.ToString + " SndT2 = " + SndT2.ToString
+ " " _
+ "SndMin = " + SndMin.ToString + " SndSec = " +
SndSec.ToString + _
" ex = " + ex.ToString + " "
TextBox3.Text = Str
Timer1.Stop()
End Try
End Sub


"The scientist is possessed by the sense of universal
causation...His religious feeling takes the form of
rapturous amazement at the harmony of natural law,
which reveals the intelligence of such superiority
that, compared with it, systematic thinking and acting
of human beings is an utterly insignificant reflection."
Albert Einstein (theoretical physicist)


Nov 26 '06 #2
Beacuse your 5 variables are of type Byte, the way you are doing the
addition, the interim result will be of type Byte and 343 is too big to fit
in a Byte which has a miximum value of 255.

If interim result was less than 256 then the interim would be converted to
an Integer and assigned to CkSum.

If you don't want to do explicit conversion then you need to do it this way:

CkSum = SndMin
CkSum += SndSec
CkSum += SndT1
CkSum += SndT2
CkSum += SndPer

Because you addition of the 5 Byte variables results in a Bayte value that
is then supp
"Mike" <no********@comcast.netwrote in message
news:gh********************************@4ax.com...
Hello All,
Please, if anyone can point me to the problem, I'd sure appreciate it!
I am very new to VB programming and not a programmer to begin with.
This is part of a Visual Basic 2005 Express Edition program to control a
remote basketball
scoreboard display unit.

All I'm trying to do is add 5 byte variables and store the result in an
integer
variable. I added a Try/Catch block to take look at things.
This exception occurs only when the clock runs down to 00:00 and when one
of either
SndT1 or SndT2 are some non zero value. The value of 15 for SndMin is due
to the program
automatically starting a halftime clock that starts at 15:00.

CkSum = SndMin + SndSec + SndT1 + SndT2 + SndPer <--- The offending
line of code
CkSum = 15 + 0 + 99 + 99 + 130 = 343 <-- Values are from
the texbox in the catch block
The catch block shows CkSum = 200, but 200 is just the value left from the
last addition that worked.
The variable declrations and the entire sub where the exception is
originating were pasted
below from the program code.

TIA
Mike

This is the output displayed in the textbox by the catch block.

CkSum = 200 SndT1f = 9 HornTime = 1 SndT2f = 9 SndPer = 130
SndT1 = 99 SndT2 = 99 SndMin = 15
SndSec = 0 ex = System.OverflowException: Arithmetic operation resulted
in an overflow.
at ScoreBoard.Form1.SendPacket() in C:\Documents and
Settings\Administrator\My Documents\Visual Studio
2005\Projects\ScoreBoard1\ScoreBoard\Form1.vb:line 552
These are are variable declarations involved

Public Class Form1

Inherits System.Windows.Forms.Form
Dim SndMin, SndSec, SndT1, SndT2, SndPer As Byte
Dim SndT1f, SndT2f, SndHrn, SndCkSum As Byte
Dim CkSum as Integer
Dim PacketData() As Byte = {&H55, &HCC, 0, 0, 0, 0, 0, 0, 0, 0, 0}

Public ClockMode As Byte = 0
Public Period As Byte = 1
Public HornTime As Byte = 2
Public T1score As Byte = 0
Public T2score As Byte = 0
Public T1Fouls As Byte = 0
Public T2Fouls As Byte = 0
Public Mins As Byte = 0
Public Secs As Byte = 0
This is the sub in which the overflow exception occurs

'This routine builds a data packet to send to the remote display
assembly

Private Sub SendPacket()
SndT1 = T1score : SndT2 = T2score : SndPer = Period : SndHrn =
HornTime
SndMin = Mins : SndSec = Secs : SndT1f = T1Fouls : SndT2f = T2Fouls
If ClockMode = 1 Then ' See if a timeout has been called
SndPer = CByte(SndPer Or &H80) ' Turn on the flash LED flag bit
End If
Try
If ExtDisp = True Then ' Prepare a packet if using an extended
display

'Calculate a simple checksum to add to the end of the
packet

The following line will also cause an exception if I change ExtDisp to
True.

SndCkSum = CByte(SndMin + SndSec + SndT1 + SndT2 + SndPer +
SndT1f + SndT2f)

' Load the 7 data bytes and the checksum byte into the data
packet array
' PacketData(0) and PacketData (1) are initialized to &H55 and &Hcc
' respectively to form a constant 2 byte header for the packet

PacketData(2) = SndMin : PacketData(3) = SndSec :
PacketData(4) = SndT1
PacketData(5) = SndT2 : PacketData(6) = SndPer :
PacketData(7) = SndT1f
PacketData(8) = SndT2f : PacketData(9) = SndCkSum

Else ' Prepare a packet for a standard display

'Calculate a simple checksum to add to the end of the data
packet

This is the line causing the error.
Line 552
********-- CkSum = SndMin + SndSec + SndT1 + SndT2 + SndPer

SndCkSum = CByte(CkSum) ' Explicitly convert the checksum
to a byte

' Load the 5 data bytes and the checksum byte into the
packet array
' PacketData(0) and PacketData (1) are initialized to &H55 and &Hcc
' respectively to form a constant 2 byte header for the packet

PacketData(2) = SndMin : PacketData(3) = SndSec :
PacketData(4) = SndT1
PacketData(5) = SndT2 : PacketData(6) = SndPer :
PacketData(7) = SndCkSum
End If

' Send the data packet to the display

Call SendSerialData(PacketData)

' Reset the horn on flag if it was set

If HornTime &H7F Then HornTime = CByte(HornTime - &H80)

Catch ex As OverflowException
Dim Str As String
TextBox3.Visible = True
Str = "CkSum = " + CkSum.ToString + " SndT1f = " +
SndT1f.ToString + " " _
+ "HornTime = " + HornTime.ToString + " SndT2f = " +
SndT2f.ToString + " " _
+ "SndPer = " + SndPer.ToString + " " _
+ "SndT1 = " + SndT1.ToString + " SndT2 = " + SndT2.ToString
+ " " _
+ "SndMin = " + SndMin.ToString + " SndSec = " +
SndSec.ToString + _
" ex = " + ex.ToString + " "
TextBox3.Text = Str
Timer1.Stop()
End Try
End Sub


"The scientist is possessed by the sense of universal
causation...His religious feeling takes the form of
rapturous amazement at the harmony of natural law,
which reveals the intelligence of such superiority
that, compared with it, systematic thinking and acting
of human beings is an utterly insignificant reflection."
Albert Einstein (theoretical physicist)

Nov 26 '06 #3

Hello Mike and Stephany,

Thanks for the help! I got it working.
Mike, Unfortunately your solution did exactly the same thing as my original code,
but from your comments I understand now that CByte(x) will overflow if x 255.

Stephany, Your comment reguarding the interim result of the addition being 255 was the
other half of the solution.

To test the overflow from the interim results I added the the following 2 lines of code
to the main form load sub and sure enough, it throws an exception pointing to the 2nd
line below.

SndMin = 15 : SndSec = 59 : SndT1 = 99 : SndT2 = 99 : SndPer = 130
CkSum = SndMin + SndSec + SndT1 + SndT2 + SndPer

I don't know the accepted way to do such an addition, but out of curiousity
I tried the following which worked fine, no exception during form loading.

SndMin = 15 : SndSec = 59 : SndT1 = 99 : SndT2 = 99 : SndPer = 130
CkSum = 0
CkSum = CkSum + SndMin + SndSec + SndT1 + SndT2 + SndPer

So evidently the interim result can go as high as the largest size variable
used to the right of the equal sign. That's different from the older languages
that I have experience with. They all handled interim results without having
to deal with it.

The next thing I tried was to use the following 2 lines in the SendPacket sub
and it works just fine.

CkSum = SndMin
SndCkSum = CByte((CkSum + SndSec + SndT1 + SndT2 + SndPer) And &HFF)

Lastly I tried Stephanys code as follows and it works also and now I understand why.

CkSum = SndMin
CkSum += SndSec
CkSum += SndT1
CkSum += SndT2
CkSum += SndPer
SndCkSum = CByte(CkSum And &HFF)

Thanks again for the help. Now I can move on and start building the cabnet for the
remote display assembly.

Mike

"The scientist is possessed by the sense of universal
causation...His religious feeling takes the form of
rapturous amazement at the harmony of natural law,
which reveals the intelligence of such superiority
that, compared with it, systematic thinking and acting
of human beings is an utterly insignificant reflection."
Albert Einstein (theoretical physicist)
Nov 26 '06 #4
OHM
Just out of curiosity, what are you doing ?

"Mike" <no********@comcast.netwrote in message
news:i2********************************@4ax.com...
>
Hello Mike and Stephany,

Thanks for the help! I got it working.
Mike, Unfortunately your solution did exactly the same thing as my
original code,
but from your comments I understand now that CByte(x) will overflow if x >
255.

Stephany, Your comment reguarding the interim result of the addition being
255 was the
other half of the solution.

To test the overflow from the interim results I added the the following 2
lines of code
to the main form load sub and sure enough, it throws an exception pointing
to the 2nd
line below.

SndMin = 15 : SndSec = 59 : SndT1 = 99 : SndT2 = 99 : SndPer = 130
CkSum = SndMin + SndSec + SndT1 + SndT2 + SndPer

I don't know the accepted way to do such an addition, but out of
curiousity
I tried the following which worked fine, no exception during form loading.

SndMin = 15 : SndSec = 59 : SndT1 = 99 : SndT2 = 99 : SndPer = 130
CkSum = 0
CkSum = CkSum + SndMin + SndSec + SndT1 + SndT2 + SndPer

So evidently the interim result can go as high as the largest size
variable
used to the right of the equal sign. That's different from the older
languages
that I have experience with. They all handled interim results without
having
to deal with it.

The next thing I tried was to use the following 2 lines in the SendPacket
sub
and it works just fine.

CkSum = SndMin
SndCkSum = CByte((CkSum + SndSec + SndT1 + SndT2 + SndPer) And &HFF)

Lastly I tried Stephanys code as follows and it works also and now I
understand why.

CkSum = SndMin
CkSum += SndSec
CkSum += SndT1
CkSum += SndT2
CkSum += SndPer
SndCkSum = CByte(CkSum And &HFF)

Thanks again for the help. Now I can move on and start building the cabnet
for the
remote display assembly.

Mike

"The scientist is possessed by the sense of universal
causation...His religious feeling takes the form of
rapturous amazement at the harmony of natural law,
which reveals the intelligence of such superiority
that, compared with it, systematic thinking and acting
of human beings is an utterly insignificant reflection."
Albert Einstein (theoretical physicist)

Nov 26 '06 #5
On Sun, 26 Nov 2006 12:40:16 -0000, "OHM" <lkjhlkjwrote:
>Just out of curiosity, what are you doing ?
I'm building a basketball scoreboard for my church to use in a youth
basketball league we are starting up.
All the timing and control are done in the vb program that I've been
wrestling with and it will run on a pc at the scorers table. The main
display is battery powered and will receive data from the pc via a 432MHz
rf link so that we can place it wherever we need it. It's all working
well now and if the rf modules are any good at all we should have a really
nice setup.
Thanks again to Mike and Stephany for their help.

Mike

"The scientist is possessed by the sense of universal
causation...His religious feeling takes the form of
rapturous amazement at the harmony of natural law,
which reveals the intelligence of such superiority
that, compared with it, systematic thinking and acting
of human beings is an utterly insignificant reflection."
Albert Einstein (theoretical physicist)
Nov 26 '06 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

44
by: JKop | last post by:
You know how the saying goes that *unsigned* overflow is... well.. defined. That means that if you add 1 to its maximum value, then you know exactly what value it will have afterward on all...
10
by: JKop | last post by:
Let's say you've a very simple function, that, if it fails, should throw an exception. The thing is though, it's not important enough to go and actually define an "exception class" for, so... is...
16
by: Protoman | last post by:
Is this a good way of making use of OOP? Also, is this a good way of computing Fibonacci numbers? Code: #include <iostream> #include <cstdlib> using namespace std; template <class T>
34
by: Andy | last post by:
Hi, Are 1 through 4 defined behaviors in C? unsigned short i; unsigned long li; /* 32-bit wide */ 1. i = 65535 + 3; 2. i = 1 - 3; 3. li = (unsigned long)0xFFFFFFFF + 3; 4. li = 1...
17
by: Hazz | last post by:
In this sample code of ownerdraw drawmode, why does the '(ComboBox) sender' line of code need to be there in this event handler? Isn't cboFont passed via the managed heap, not the stack, into this...
40
by: Kevin Yu | last post by:
is it a bad programming design to throw exception in the try block then catch it??
30
by: Filimon Roukoutakis | last post by:
Suppose that we have a function f(Object*& obj) and have declared a global std::vector<Object*vec; Is it valid to do void g() { vec.push_back(new Object);
1
by: usenet | last post by:
I wrote some sample code (see below) for nested exception throwing i.e. my catch blocks are throwing exceptions of their own (for simplicity I used standard exceptions). I am getting some...
5
by: mike3 | last post by:
Hi. Is this a good idea?: <begin code> /* Addition operator: += */ const BigFix &BigFix::operator+=(const BigFix &rhs) { ErrorType err; int lhs_sign = sign, rhs_sign = rhs.sign;
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
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,...
0
Oralloy
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,...
0
tracyyun
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...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.