Beruflich Dokumente
Kultur Dokumente
This project ECG monitoring system deals with a transfer of ECG data from the patients to the doctor present in his cabin. The idea of our project is firstly taking up an ECG signal from the patient and reading the data in PC using an arduino (an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software) board. Then the signal is applied to noise removal, base wander removal and amplification circuits in labVIEW (a system design software) software. Now the ECG signal thus obtained is sent from the patients recording system to doctors using an Ethernet cable or LAN connection. This enables the monitoring of any number of patients by doctor at one place.
CHAPTER 1. INTRODUCTION.....................................................................................1 1.1 Introduction............................................................................................................1 1.1.1 Heartbeat .........................................................................................................2 1.1.2 Heart And Functions ........................................................................................2 CHAPTER 2: SOFTWARE .............................................................................................4 2.1. LabVIEW..............................................................................................................4 CHAPTER 3. PROJECT OVERVIEW ............................................................................6 3.1. Aim ...................................................................................................................6 3.2. Basic idea behind the project .................................................................................6 3.3. Methodology .........................................................................................................6 3.3.1. Simulation ......................................................................................................7 3.3.2. Detrending .................................................................................................... 12 3.3.3. Merging Of Signals ....................................................................................... 16 3.3.4. Square and Square Root Of A Signal ............................................................ 16 3.3.5 Peak Detection .............................................................................................. 20 3.3.6. Array Building .............................................................................................. 25 3.3.7. Matlab Script ................................................................................................ 29 3.3.8. WA Noise ..................................................................................................... 30 3.3.9. Performing Feature Extraction On ECG Signals: ........................................... 38 3.3.10. UDP VI and Functions ................................................................................ 42 3.3.11. Flatten To String Function .......................................................................... 47 3.3.12. Unflatten From String Function .................................................................. 49 CHAPTER 4. RESULTS ............................................................................................... 52 4.1 Results ................................................................................................................. 52
CHAPTER 5. CONCLUSION ..54 5.1 Conclusion....54 5.2 Future Scope.54
ii
iii
PAGENO.
1 3 5 7 9 13 17 17 18 21 24 26 27 30 31 35 44 44 46 47 48 50 51
LIST OF TABLES
iv
PAGENO.
11 11 13 21 30 31 32 32 36 36 37 43 48 51
LIST OF SCREENSHOTS
v
PAGENO.
12 16 23 33 40 41 42 43 53 54
vi
Fig 1.2 Electrical Activity of the Heart In this signal, the heart muscles generate different voltages. The P wave represents the atrium contraction. QRS complex and the T wave represents the ventricles actions. Each time that this signal is present, a heartbeat is generated.
Fig 2.1 Lab VIEW LabVIEW programs are called virtual instruments, or VIs, because their appearance and operation imitate physical instruments, such as oscilloscopes and multimeters. LabVIEW contains a comprehensive set of tools for acquiring, analyzing, displaying, and storing data, as well as tools to help you troubleshoot code you write. In LabVIEW, you build a user interface, or front panel, with controls and indicators. Controls are knobs, push buttons, dials, and other input mechanisms. Indicators are
4
3.3 Methodology
At Server: Pick up the ECG signal using simulator, simulate the signal, then wavelet analysis is done using Discrete Wavelet Transform (DWT). DWT is any wavelet transform for which the wavelets are discretely sampled. As with other wavelet transforms, a key advantage it has over Fourier transforms is temporal resolution: it captures both frequency and location information (location in time). The discrete wavelet transform has a huge number of applications in science, engineering, and mathematics and computer science. Most notably, it is used for signal coding, to represent a discrete signal in a more redundant form, often as a preconditioning for data compression. Practical applications can also be found in signal processing of accelerations for gait analysis, in digital communications and many others. After wavelet analysis is done signals are merged, processed, denoised, detrended, R-R interval peak detection, find heart rate , server-client transfer of information.
Merging of signals Signal Processing Filtering of signal Peak detection (Finding R-R peaks)
Array building
Write to UDP
Fig. 3.2 Simulation Block Diagram Inputs Parameter Description Block size Specifies the signal length(s) to simulate each time this VI runs. Error in Describes error conditions that occur before this node runs. (no error) Initialize? Specifies whether to initialize the ECG signal. The default is FALSE. Sampling rate Specifies the sampling rate of the ECG signal.
Specifies basic settings for simulating ECG signals. Contain the following ECG Settings options:
Output upper limitSpecifies the upper limit of the output ECG signal, in millivolts. The default is 1.3.
Output lower limitSpecifies the lower limit of the output ECG signal, in millivolts. The default is -0.4.
60 Hz noise amplitudeSpecifies the amplitude of the 60 Hz noise that this VI adds into the simulated ECG signal, in millivolts. This VI adds 60 Hz noise to simulate the impact of alternating current. 60 Hz noise amplitude must be greater than or equal to 0. The default is 0.
Sampling rateSpecifies the sampling rate of the simulated ECG signal, in hertz.Sampling rate must be between 10 and 1,000. The default is 513.
Block sizeSpecifies the time length of the simulated ECG signal each time this VI runs, in seconds. Block size must be less than 1930/Heart rate. The default is 3.
Timing modeSpecifies the timing mode that this VI uses to generate simulated ECG signals. You can select Simulate
acquisition timing or Run as fast as possible. The default is Run as fast as possible.
Heart rateSpecifies the heart rate of the simulated ECG signal, in beats per minute.Heart rate must be greater than 10 and less than 300. The default is 60.
Respiratory rateSpecifies the respiratory rate of the simulated measurement process, in breaths per minute. Respiratory rate must be greater than 0. The default is 15.
Standard deviationSpecifies the standard deviation of Heart Rate, in beats per minute. Standard deviation must be greater than or equal to 0. The default is 1.
Tachycardia, and User-Defined. The default isNormal. When you set Signal type to User-Defined, you can use the Wave
selection, Position, Amplitude, and Width options to customize the ECG waveform morphology.
Wave selectionSpecifies the type of wave that you want to customize. You can selectP, Q, R, S, or T. This option is available only when you set Signal type to User-Defined. The default is P.
PositionSpecifies the peak or valley position of the wave that you specify in Wave selection. This option is available only when you set Signal type to User-Defined.
AmplitudeSpecifies the amplitude of peak or valley of the wave that you specify inWave selection. This option is available only when you set Signal type to User-Defined.
WidthSpecifies the width of the wave that you specify in Wave selection. This option is available only when you set Signal type to User-Defined.
PreviewDisplays a block of the simulated ECG signal. When you set Signal type to User Defined, a crosshair appears and indicates the type of wave that you select in Wave selection.
Advanced Specifies advanced settings for simulating ECG signals. Contains the Settings following options:
LF positionSpecifies the peak position in the low frequency (LF) band of the power spectrum of RR intervals, in hertz. LF position must be greater than 0. The default is 0.1.
HF positionSpecifies the peak position in the high frequency (HF) band of the power spectrum of RR intervals, in hertz. HF position must be greater than 0. The default is 0.35.
10
LF/HF ratioSpecifies the ratio of peak amplitude at LF position to the peak amplitude at HF position. LF/HF ratio must be greater than or equal to 0. The default is 0.5.
LF standard deviationSpecifies the standard deviation of the wave whose peak is atLF position. LF standard deviation must be larger than 0. The default is 0.01.
HF standard deviationSpecifies the standard deviation of the wave whose peak is atHF position. HF standard deviation must be larger than 0. The default is 0.01.
RR Power Spectrum PreviewDisplays the power spectrum of RR intervals of the simulated ECG signal. Table 3.1 Simulation inputs
Block Diagram Outputs Parameter Description ECG error out Returns the simulated ECG signal. Contains error out functionality. information. This output provides standard error
11
12
Signal specifies the input signal. Threshold frequency specifies the upper frequency limit, in hertz, of the trend that this VI removes from thesignal. The threshold
frequency determines the wavelet transform level. The wavelet transform level specifies the number of levels in the discrete wavelet analysis. The wavelet transform level is floor(log3[sampling rate/(3*threshold
frequency)]). The floor function rounds a value to the nearest integer towards negative infinity. The default is 1, which means this VI sets the threshold frequency automatically. Wavelet specifies the wavelet type to use for the discrete wavelet analysis. The default is db03. The options include two types: orthogonal (haar, daubechies (dbxx), coiflets (coifx), symmlets (symx)) and biorthogonal (biorthogonal (biorx_x), including fbi (bior4_4 (fbi))), where x indicates the
13
14
15
Fig.3.4 Merging Input signal specifies the signal you want to combine with another signal. Combined signal returns the combined signals. You can wire the dynamic data type to a graph or numeric indicator. For example, if you wire the combined signal to a graph indicator, LabVIEW represents each signal as an individual plot. Add the Merge Signals function to the block diagram. Resize the Merge Signals function so it includes enough inputs for the signals you want to wire. Wire each signal to an input signal input. Wire the combined signal output to the signals input of another VI, function, graph, or chart.
16
Fig 3.5 Squaring of signal x can be a scalar number, array or cluster of numbers, array of clusters of numbers, and so on. x^2 is of the same numeric representation as x. Square Details If you wire fixed point values to numeric functions such
as Add, Subtract, Multiply, and Square, the functions usually return values that do not lose any bits of word length. However, if the operation creates a value that exceeds the maximum word length that LabVIEW accepts, overflow or rounding conditions can occur. LabVIEW accepts a maximum word length of 64 bits. Use the Numeric Node Properties dialog box to configure how LabVIEW handles overflow or rounding of fixedpoint data. Square root of a signal: Computes the square root of the input value. If x is negative, the square root is NaN unless x is complex. If x is a matrix, this function takes the matrix square root of x. The connector pane displays the default data types for this polymorphic function.
Fig 3.6 Square root of signal x can be a scalar number, array or cluster of numbers, array of clusters of numbers, and so on. sqrt(x) is a double-precision, floating-point number if x is an integer. If x is less
17
arg(x) = arctan2(b,a) Square Root Details When you wire matrix data as an input to this function, a VI that includes subVIs that work with the matrix data type replaces the function. The resulting VI has the same icon but contains a matrix-specific algorithm. The node remains a VI if you disconnect the matrix from the input(s). Wire other data types as inputs to restore the original function. If you wire a data type to a function and that data type causes a basic math operation to fail, the function returns an empty matrix or NaN. Fixed-Point Details If you wire a signed fixed-point value to this function, the function converts the signed number into a floating-point number and performs the square root operation. By default, LabVIEW configures the integer word length of the square root to avoid overflow. However, because the precision of the square root can be infinite, rounding conditions always occur. Use the Numeric Node Properties dialog box to configure how LabVIEW handles overflow and rounding of fixed-point data. Palette Object Absolute Value Description Returns the absolute value of the input.
18
19
Square Root Computes the square root of the input value. Subtract Subpalette Computes the difference of the inputs. Description
Math & Use the Math & Scientific Constants to create LabVIEW applications. Scientific Constants Table 3.4 Palettes for Arithmetic Operations
Fig 3.7 Peak detection Peaks/valleys indicates whether to find peaks or valleys. 0 Peaks 1 Valleys Signal In contains the waveform in which to find peaks or valleys. Threshold instructs the VI to ignore peaks and valleys that are too small. The VI ignores peaks if the fitted amplitude is less than threshold. The VI ignores valleys if the fitted trough is greater than threshold. Width specifies the number of consecutive data points to use in the
20
21
Fig. 3.3 Peak Detection Locations contains the index locations of all peaks or valleys detected in the current block of data. Because the peak detection algorithm uses a quadratic fit to find the peaks, it actually interpolates between the data points. Therefore, the indexes are not integers. In other words, the peaks found are not necessarily actual points in the input data but may be at fractions of an index and at amplitudes not found in the inputarray.
To view the locations in terms of time, use the following equation. Time locations[i] = t0 + dt*locations[i]
22
Fig.3.8 Peak detection for n channels Peaks/valleys indicates whether to find peaks or valleys.
0 Peaks 1 Valleys Signals In contains the waveforms in which to find peaks or valleys. Threshold instructs the VI to ignore peaks and valleys that are too small. The VI ignores peaks if the fitted amplitude is less than threshold. The VI ignores valleys if the fitted trough is greater than threshold. Width specifies the number of consecutive data points to use in the quadratic least squares fit. The value should be no more than about 1/3 of the half-width of the peak/valley and can be much smaller (but > 3) for noise-free data. Large widths can reduce the apparent amplitude of peaks
23
To view the locations in terms of time, use the following equation. Time Locations[i] = t0 + dt*Locations[i] Amplitudes contain the amplitudes of peaks or valleys found in the current block of data for each waveform. o Amplitudes contain the amplitudes of peaks or valleys found in the current block of data.
24
25
Fig. 3.10 Array Building Array or element can be any n-dimensional array or scalar element. All inputs must be either elements and 1D arrays or n-dimensional and (n-1)dimensional arrays. All inputs must have the same base type. Appended array is the resulting array.
Build Array Details When you place the function on the block diagram, it has only one input available. Add inputs to the node by right-clicking an input and selecting Add Input from the shortcut menu or by resizing the node. If you wire control references of different classes to this function, this function typecasts the references to a more generic class that is the lowest common class in the inheritance hierarchy. This function then returns appended array with that class. The Build Array function operates in one of two modes depending on whether you select Concatenate Inputs from the shortcut menu. If you select Concatenate Inputs, the function appends all inputs in order, forming an output array of the same dimensionality as the highest-dimension array input wired. If you do not select Concatenate Inputs, the function builds an output array of one dimension higher than the dimension of the inputs. For example, if you wire 1D array input to a Build Array function, the output is a 2D array, even if the 1D array is empty. The inputs must all be the same dimensionality. The function appends each input in order, forming a subarray, element, row, or page, of the output array. Inputs are padded, as necessary, to match the size of the longest input.
26
Array Max Returns the maximum and minimum values found in array, along with the & Min indexes for each value. Array Size Array Subset Array Cluster Array Matrix Returns the number of elements in each dimension of array. Returns a portion of array starting at index and containing lengthelements. To Converts a 1D array to a cluster of elements of the same type as the array elements. Right-click the function and select Cluster Size from the shortcut menu to set the number of elements in the cluster. To Converts an array to a matrix of elements of the same type as the array elements. Wire data to the Real 3D Array input to determine the polymorphic instance to use or manually select the instance.
Delete From Deletes an element or subarray from n-dim array and returns the edited Array array in array w/ subset deleted and the deleted element or subarray indeleted portion. Index Array Returns the element or subarray of n-dimension array at index. Initialize Array Insert Array Creates an n-dimensional array in which every element is initialized to the value of element.
Into Inserts an element or subarray into n-dim array at the point you specify inindex. Interleaves corresponding elements from the input arrays into a single output array. Linearly interpolates a decimal y value from an array of numbers or points using a fractional index or x value.
Interleave 1D Arrays Interpolate 1D Array Matrix Array Replace Array Subset Reshape Array
To Converts a matrix of elements to an array of elements of the same data type. Wire data to the Real Matrix input to determine the polymorphic instance to use or manually select the instance. Replaces an element or subarray in an array at the point you specify in index. Changes the dimensions of an array according to the values of dimension size 0..m-1.
Reverse 1D Reverses the order of the elements in array. Array Rotate Array Search Array Sort Array Split Array 1D Rotates the elements of array the number of places and in the direction indicated by n. 1D Searches for an element in a 1D array starting at start index. Because the search is linear, you need not sort the array before calling this function. LabVIEW stops searching as soon as the element is found. 1D Returns a sorted version of array with the elements arranged in ascending order. 1D Divides array at index and returns the two portions with the element of index at the beginning of second sub array.
28
Transpose 3D Array
Fig.3.11 Matlab script Add this node to the block diagram and enter the script. You also can right-click the node border to import text into the node. Right-click the node border to add input and output terminals. Right-click a terminal to set its data type. When you create a script in the MATLAB script node, you must use supported data types.
29
Fig.3.12 WA noise (DWT Waveform) Threshold settings specifies the settings for the thresholding approximation coefficients and detail coefficients from the wavelet decomposition. o Thresholding rule specifies the threshold selection rules. If you specify a value for user defined thresholds, this vi ignores the settings in thresholding rule. 0 Sure (default)uses the principle of stein's unbiased risk estimate (sure) to estimate the threshold. 1 Hybridfinds a compromise between the sure method and the universal method. When the signal-to-noise ratio of the noisy signal is very low, this vi uses the universal method to estimate the threshold. 3 Universalsets the threshold to sqrt(3log(ls)), where ls is the signal length. 3 Minimaxuses the minimax principle to estimate the threshold. Table 3.6 Thresholding for DWT Waveform o Rescaling method specifies the method to use to estimate the noise variance at each level. This vi uses the noise variance to rescale the threshold. Therefore, you can update the thresholds with the noise variance. If you specify a value for user defined thresholds, this vi ignores the settings in rescaling method.
30
31
Signal specifies the input signal. Levels specifies the number of levels in the discrete wavelet
analysis. Levels must be a positive integer no greater than log3(Ls), where Ls is the length of the 1D signal or the minimum dimensional size of the 3D signal. The default is 1, which indicates that this VI sets levels as the largest integer no greater than log3(Ls). Wavelet specifies the wavelet type to use for the discrete wavelet analysis. The default is db03. The options include two types: orthogonal (Haar, Daubechies (dbxx), Coiflets (coifx), Symmlets (symx)) and biorthogonal (Biorthogonal (biorx_x), including FBI (bior4_4 (FBI))), where x indicates
32
33
in thresholding rule, rescaling method, andoption for approx coefficient. Denoised signal returns the signal after denoising. Error out contains error information. This output provides standard error out functionality. WA Denoise (DWT Real Array)
Fig.3.13 WA noise (DWT real array) Threshold settings specifies the settings for the thresholding approximation coefficients and detail coefficients from the wavelet decomposition. o Thresholding rule specifies the threshold selection rules. If you specify a value for user defined thresholds, this vi ignores the settings in Thresholding rule. 0 Sure (default)uses the principle of stein's unbiased risk estimate (sure) to estimate the threshold.
34
0 None (default)does not change the approximation coefficients 1 Thresholdapplies the same thresholding operation to the approximation coefficients 3 Detrendsets the approximation coefficients to 0. Table 3.11 Wavelet Decomposition for DWT real array Signal specifies the input signal. Levels specifies the number of levels in the discrete wavelet
analysis. Levels must be a positive integer no greater than log3(ls), where ls is the length of the 1d signal or the minimum dimensional size of the 3d signal. The default is 1, which indicates that this vi sets levels as the largest integer no greater than log3(ls). Wavelet specifies the wavelet type to use for the discrete wavelet analysis. The default is db03. The options include two types: orthogonal (haar, daubechies (dbxx), coiflets (coifx), symmlets (symx)) and biorthogonal (biorthogonal (biorx_x), including fbi (bior4_4 (fbi))), where x indicates the order of the wavelet. The higher the order, the smoother the wavelet. The orthogonal wavelets are not redundant and are suitable for signal or image denoising and compression. The biorthogonal wavelets usually have the linear phase property and are suitable for signal or image feature extraction. If you want to use other types of wavelets, do not wire this input. Instead, use the wavelet design express vi to design the wavelet you want, bundle the resulting analysis and synthesis filters, and then wire them to the filter banks input. Error in describes error conditions that occur before this node runs. This input provides standard error in functionality. Filter banks specifies the analysis filter banks and the synthesis filter banks for the wavelet you specify. If you specify a value for filter banks,
36
equal levels. The first element of user defined thresholds contains the threshold for the detail coefficients at the largest level, and the last element of user defined thresholds contains the threshold for the detail coefficients at the first level. If you specify a value for user defined thresholds, this vi keeps the approximation coefficients unchanged and ignores the settings in thresholding rule, rescaling method, andoption for approx coefficient.
37
38
Figure 3.5 ECG multiresolution analysis and implementation of QRS detection The ECG Feature Extractor firstly detects all beats (R waves) in the signal, and then extracts other features for every beat. Thus the accuracy of detecting R waves is very important. For normal ECG signals, they can be easily detected, as shown in Figure 8. While abnormal morphology makes the detection difficult for ECG from patients with some specific heart diseases. Thus sometimes you need to perform some signal enhancement (preprocessing) before feature extraction. The preprocessed ECG signal is used to detect position of R waves. After that, all other features will be extracted using original signal, because the signal enhancement may change these features.
39
Fig. 3.6 ECG signal Signal enhancement usually contains two steps: filtering and rectification. R waves of human ECG usually have a frequency between 10-35Hz. Thus R waves can be more obvious and easily for detection after filtering using a bandpass filter. Rectification sometimes can further enhance the R waves to make them easier to detect. Absolute and square are two common used rectification methods. Figure 9 shows the processing result of an ECG signal with some negative R waves and very large T waves. It can be seen that, after enhancement, all beats can be easily detected. Biosignal Filtering VI is used to filter the signal. In ECG Feature Extractor application, a preprocessing settings window is provided for users to perform the signal enhancement interactively.
40
41
Figure 3.8 Original ECG, ECG after filtering and ECG after peak/valley detection After extracting the features, you can perform heart rate variability (HRV) analysis on the R-R interval signal to demonstrate the state of the heart and nerve system. In HRV Analyzer of LabVIEW Biomedical Toolkit, you can directly synchronize the RR intervals from ECG Feature Extractor. 3.3.10. UDP VI and Functions:
UDP Multicast Opens a UDP multicast socket on the port. You must manually select Open the polymorphic instance you want to use. UDP Open UDP Read UDP Write Opens a UDP socket on the port or service name. Reads a datagram from a UDP socket, returning the results in data out. Writes to a remote UDP socket. Table 3.12 UDP Palettes
42
Fig. 3.14 UDP close Connection ID is a network connection ref num that uniquely identifies the UDP socket you want to close. Error in describes error conditions that occur before this node runs. With the following exception, this input provides standard error in functionality. This node runs normally even if an error occurred before this node runs. Connection ID out has the same value as connection ID. Do not wire this output to other UDP functions. Error out contains error information. This output provides standard error out functionality.
UDP open: opens a UDP socket on the port or service name. Close the socket with the UDP Close function. Use the UDP Multicast Open VI instead of this function to open connections capable of reading, writing, or reading and writing data to or from UDP Multicast sockets. Use the UDP Write function to query the NI Service Locator for the port number registered with the service name.
Fig.3.15 UDP Open Net address specifies on which network address to listen. Specifying an address is useful if you have more than one network card, such as two ethernet cards, and want to listen only on the card with the specified
43
44
Fig.3.16 UDP Read Connection ID is a network connection ref num that uniquely identifies the UDP socket. Max size is the maximum number of bytes to read. The default is 548. (windows) if you wire a value other than 548 to this input, windows might return an error because the function cannot read fewer bytes than are in a packet. Timeout ms specifies the time, in milliseconds, that the function waits for bytes. If no bytes have been received within the specified time, the function completes and returns an error. The default is 35,000 ms. A value of 1 indicates to wait indefinitely. Error in describes error conditions that occur before this node runs. This input provides standard error in functionality. Connection ID out returns the same value as connection ID. Data out contains the data read from the UDP datagram. Error out contains error information. This output provides standard error out functionality. Port is the port of the UDP socket that sent the datagram. Address is the address of the computer where a datagram originates.
45
Fig.3.17 UDP Write Port or service name can accept a numeric or string input. Port or service name identifies what port to write to. If you specify a service name, LabVIEW queries the ni service locator for the port number that the server registered. Address is the address of the computer where you want to send a datagram. Connection id is a network connection ref num that uniquely identifies the UDP socket. Data in contains the data to write to another UDP socket. In an Ethernet environment, restrict data to 8193 bytes. In a local talk environment, restrict data to 1458 bytes to maintain gateway performance. Timeout ms specifies the time, in milliseconds, that the function waits before the function completes and returns an error. The default value is 35,000 ms or 35 seconds. A value of -1 indicates to wait indefinitely. Error in describes error conditions that occur before this node runs. This input provides standard error infunctionality. Connection id out returns the same value as connection id. Error out contains error information. This output provides standard error out functionality.
46
Fig.3.18 Flatten to string Anything can be any data type. Prepend array or string size? Indicates whether LabVIEW includes data size information at the beginning of data string when anything is an array or string. If prepend array or string size? Is FALSE, LabVIEW does not include the size information. The default is TRUE. Prepend array or string size? Only controls the top-level data size information. Arrays and strings in hierarchical data types such as clusters always include size information. Byte order sets the ending format of the data in the resulting flattened string. Byte order, or ending form, indicates whether integers are represented in memory from most significant byte to least significant byte or vice versa. 0 Big-ending, network order (default)The most significant byte occupies the lowest memory address. 1 Native, host orderUses the byte-ordering format of the host computer. 3 Little-endingThe least significant byte occupies the lowest memory address. Table 3.13 Byte order for Flatten to string Error in describes error conditions that occur before this node runs. This input provides standard error in functionality. Data string is the flattened data generated by the function. Data
47
contain flattened data of the type wired to type. You also can use this function to specify the byte order, or ending format, of the data in the binary string.
Fig.3.19 Unflatten from string function Type is a normally constructed LabVIEW type. Type is not the type string output in the Flatten To String function. Binary string is a flattened string that is typically generated by the Flatten To String function. If data includes array or string size? Is TRUE, binary string contains header information describing its size. Data includes array or string size? Indicates whether LabVIEW reads data size information from the beginning of an incoming array or string.
49
50
Read number of bytes received and add them to the ones read in a previous iteration
Concatenate data received, and display it in the string indicator Concatenate data received, and display it in the string
If the UDP Read.vi times out, reset the error cluster so an error does not show
51
52
53
54
APPENDIX:
55