Search the Community

Showing results for tags 'vb'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • News
    • New Users Introduction
    • Announcements
  • Digilent Technical Forums
    • FPGA
    • Digilent Microcontroller Boards
    • Non-Digilent Microcontrollers
    • Add-on Boards
    • Scopes & Instruments
    • LabVIEW
    • FRC
    • Other
  • General Discussion
    • Project Vault
    • Learn
    • Suggestions & Feedback
    • Buy, Sell, Trade
    • Sales Questions
    • Off Topic
    • Educators
    • Technical Based Off-Topic Discussions

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 14 results

  1. Greetings, I am working on a project using the Pattern Generator and Logic Analyzer functions of Analog Discovery 2. I'm trying to figure out the proper arrangements of bits to be assigned to the Pattern Generator so that the Logic Analyzer can receive it in UART format properly. Let's say I want to transmit the word "UART" using the Pattern Generator. Here's how I'm doing it using the Custom Signal setting in the Pattern Generator: The bits highlighted in green are the start and stop bits while those in yellow are the inverted data bits of the word "UART". I also adjusted the Run and Repeat time to only transmit it once. (40/9600 = 0.004166666) I transmitted it to the Logic Analyzer and it was able to receive it using the UART setting. The problem that I see with this is if you want to transmit a single character, you'll need 10 bits for it. For big data, it will take too long to be received by the Logic Analyzer. I was wondering if the Pattern Generator can be set up like this: 1 start bit + (32 Data bits of "UART") + 1 stop bit This reduces the no. of bits by only using the start and stop bits at the beginning and at the end of the data to be transmitted. I tried doing this by rearranging the bits, the run time and repeat settings in the Pattern Generator: The results that I got using the Logic Analyzer became incorrect for the next characters: I'm also trying to do it in VB. Here's the code for it: Imports System.Text Module Module1 Function AD2_UARTCommRead(ByVal hdwf As Integer, ByRef rgData() As Byte, ByVal countOfDataBytes As Integer, ByVal hzRate As Integer, ByVal hzUart As Integer, ByVal pin As Integer, ByRef rgParsed As String, ByRef rgLength As Integer) As Integer 'Customized Uart Decoder Dim pData As Boolean Dim fData As Boolean : fData = True Dim cSamples As Integer : cSamples = rgData.Length Dim rgHex(cSamples) As Byte Dim cSamplePerBit As Integer : cSamplePerBit = hzRate / hzUart 'Decoding Raw Samples into Decimal For i = 0 To cSamples - 1 Dim s As Byte : s = rgData(i) pData = fData fData = 1 And (s >> pin) If pData <> 0 And fData = 0 Then Dim bValue As Integer : bValue = 0 For b = 0 To 7 Dim ii As Double : ii = Math.Round(i + (1.499 + b) * cSamplePerBit) ''''' If ii >= cSamples Then Exit For End If s = rgData(ii) fData = 1 And (s >> pin) If fData Then bValue = bValue + (1 << b) End If Next rgHex(i) = bValue i = i + cSamplePerBit * 9.499 - 1 '1 start + 8 bits + 0.5 stop -1 because For will increment End If Next 'Converting Decimal to ASCII Dim rgString As String For e = 0 To cSamples - 1 If rgHex(e) = 0 Then rgString = rgString Else rgString = rgString + Chr(rgHex(e)) End If Next e rgParsed = rgString rgLength = Len(rgParsed) End Function Function AD2_FDwfDigitalOutDataLong(ByVal Hdwf As Integer, ByVal IdxChannel As Integer, ByRef RgLong As String, ByVal LongBits As Integer) As Integer 'Post Processing Method 'Conversion of ASCII String to Binary Dim Text As String : Text = RgLong Dim n As Integer : n = Len(Text) Dim oReturn As New StringBuilder Dim StartBit As String : StartBit = "0" Dim StopBit As String : StopBit = "1" oReturn.Append(StartBit) For Each Character As Byte In System.Text.ASCIIEncoding.ASCII.GetBytes(Text) oReturn.Append(StrReverse(Convert.ToString(Character, 2).PadLeft(8, "0"))) 'oReturn.Append((Convert.ToString(Character, 2).PadLeft(8, "0"))) Next oReturn.Append(StopBit) Dim Text2 As String : Text2 = (oReturn.ToString) 'Padding of Additional 1s Dim Counter As Integer : Counter = Len(Text2) Dim PadMod As Integer : PadMod = (Counter + (Counter + (Counter Mod 8))) Mod 8 Dim PadBin As String : PadBin = New String("1", PadMod) Text2 = Text2 + PadBin Dim PadResult As Integer : PadResult = Counter + PadMod 'Chunking of Bits into 8 Dim RevBytes(PadResult) As String For e As Integer = 0 To RevBytes.Length - 8 Step 8 RevBytes(e) = Text2.Substring(e, 8) Next e Dim backup As String Dim Extracted(PadResult) As String Dim TxBits(PadResult) As Byte Dim f As Integer, x As Integer Dim lTemp As Integer : lTemp = 0 Dim lngValue As Integer 'Inverting and Conversion of Bits For f = 0 To RevBytes.Length backup = StrReverse(RevBytes(8 * f)) If backup = "" Then Extracted(f) = "0" Extracted(f) = Extracted(f) & backup 'Conversion of Binary to Decimal lngValue = Convert.ToInt32(Extracted(f), 2) TxBits(f) = lngValue lngValue = 0 If TxBits(f) = 0 Then Exit For Next f Call FDwfDigitalOutDataSet(Hdwf, IdxChannel, TxBits, PadResult) End Function Sub Main() Dim hdwf As Long ' 3 = 4th device configuration of AD2 with 16k digital-in/out buffer If FDwfDeviceConfigOpen(-1, 3, hdwf) = False Then Dim szError As String FDwfGetLastErrorMsg(szError) System.Console.WriteLine("Device open failed" & vbCrLf & szError, vbExclamation + vbOKOnly) End End If FDwfDeviceAutoConfigureSet(hdwf, 0) ' only the #Configure functions will apply settings ' UART channels: DIO-0 and DIO-1, h3 = (1 << 0)|(1 << 1) Const nLoop = 744 Const fsDio = &HFFFF Const hzUart = 230400 Const hzRate = hzUart * 1 ''''' Const cSamples = 8 * 4 'RgLong is 4 characters Dim cBuffer As Integer Dim RgLong As String : RgLong = "UART" Dim secRun As Double : secRun = (Len(RgLong) * 8) * (1 / hzUart) Dim phzFreq As Double 'PatGen Parameters - Initialized One Time FDwfDigitalOutInternalClockInfo(hdwf, phzFreq) FDwfDigitalOutRepeatSet(hdwf, 1) FDwfDigitalOutRunSet(hdwf, secRun) 'Enabling DIO-0 FDwfDigitalOutEnableSet(hdwf, 0, 1) FDwfDigitalOutTypeSet(hdwf, 0, 1) FDwfDigitalOutIdleSet(hdwf, 0, 2) FDwfDigitalOutDividerSet(hdwf, 0, (phzFreq / hzUart)) Dim hzDI As Double FDwfDigitalInInternalClockInfo(hdwf, hzDI) FDwfDigitalInTriggerSourceSet(hdwf, trigsrcDetectorDigitalIn) ' 'Falling Edge of any specified channel FDwfDigitalInTriggerSet(hdwf, 0, 0, 0, fsDio) FDwfDigitalInDividerSet(hdwf, hzDI / hzRate) FDwfDigitalInSampleFormatSet(hdwf, 8) FDwfDigitalInBufferSizeInfo(hdwf, cBuffer) If cSamples > cBuffer Then ' FDwfDigitalInAcquisitionModeSet(hdwf, acqmodeRecord) FDwfDigitalInTriggerPrefillSet(hdwf, 0) 'Number of samples after trigger FDwfDigitalInTriggerPositionSet(hdwf, cSamples) 'We are interested only on toggles of the specified channels FDwfDigitalInSampleSensibleSet(hdwf, fsDio) Else FDwfDigitalInBufferSizeSet(hdwf, cSamples) FDwfDigitalInTriggerPositionSet(hdwf, cSamples - 10) End If 'Processing Data for Transmission AD2_FDwfDigitalOutDataLong(hdwf, 0, RgLong, 510) 'Data needs to be tested for 744 times Dim StartTime As Double Dim SecondsElapsed As Double 'Measuring Test Time StartTime = Timer If cSamples <= cBuffer Then ' prime for repeated captures FDwfDigitalInConfigure(hdwf, 1, 1) ' it will rearm for consecutive iterations FDwfDigitalOutConfigure(hdwf, 1) End If For i = 0 To nLoop - 1 Dim rgData(cSamples) As Byte Dim sts As Byte Dim fOverflow As Boolean = False Dim iSample As Integer = 0 If cSamples > cBuffer Then ' record FDwfDigitalInConfigure(hdwf, 1, 1) ' restart is only required for record FDwfDigitalOutConfigure(hdwf, 1) Dim cAvailable As Integer Dim cLost As Integer Dim cCorrupted As Integer While iSample < cSamples If FDwfDigitalInStatus(hdwf, 1, sts) = 0 Then Return End If If sts = DwfStateDone Or sts = DwfStateTriggered Then FDwfDigitalInStatusRecord(hdwf, cAvailable, cLost, cCorrupted) If cLost <> 0 Or cCorrupted <> 0 Then fOverflow = True End If cAvailable = Math.Min(cAvailable, cSamples - iSample) Dim rgTemp(cAvailable) As Byte ' in other programming languages use pass pointer to rgData[iSample] FDwfDigitalInStatusData(hdwf, rgTemp, 1 * cAvailable) For l = 0 To cAvailable - 1 rgData(iSample) = rgTemp(i) iSample += 1 Next End If If sts = DwfStateDone Then Exit While End If End While Else While True If FDwfDigitalInStatus(hdwf, 1, sts) = 0 Then Return End If If sts = DwfStateDone Then Exit While End If End While iSample = rgData.Length FDwfDigitalInStatusData(hdwf, rgData, 1 * rgData.Length) If i < nLoop - 1 Then FDwfDigitalOutConfigure(hdwf, 1) ' start next while processing data below End If End If Dim DIO0Used As Long : DIO0Used = 2 'DIO #2 Dim DIO0Mesg As String : DIO0Mesg = "" Dim DIO0Length As Long AD2_UARTCommRead(hdwf, rgData, (1 * cSamples), hzRate, hzUart, DIO0Used, DIO0Mesg, DIO0Length) Next i '***************************** 'Determine how many seconds code took to run 'Notify user in seconds SecondsElapsed = Math.Round(Timer - StartTime, 6) Console.WriteLine("This code ran successfully in " & SecondsElapsed & " seconds.\n") Console.WriteLine((nLoop) & " x" & (1000 * SecondsElapsed / nLoop) & "ms loop latency:" & (1000 * (SecondsElapsed / nLoop - cSamples / hzRate)) & "ms") FDwfDeviceCloseAll() End Sub End Module Can anyone please explain why this is the case? Any advice will do. Best regards, Lesiastas
  2. Greetings! I'm working on a project involving the use of the AD2's Logic Analyzer Function. I need to receive 510 bytes of data in the shortest time possible. My questions are: 1). Can the Single/Repeated Acquisition Mode of the Logic Analyzer handle 510 bytes of data? - I observed that it can only handle up to 4096 samples and 1 byte of the data I'm handling is 10 bits (1 start bit, 8 data bits, 1 stop bit). So all in all, the Single/Repeated Acquisition Mode can only handle 409 bytes of data. Is there a way to make it capable of handling 510 bytes of data? 2). What is the fastest acquisition mode of the Logic Analyzer Function? - I observed that the Record Mode can handle thousands of data. The downside is it takes a very long time to receive data. Whenever I use the Record Mode, I receive all of the 510 bytes of data. The problem is I end up with 20.5 seconds before the results are displayed and that is too long. 3). What is the best acquisition mode if I want to receive 510 bytes of data as fast as possible? Any advice would really help. Best regards, Lesiastas
  3. Greetings! i'm working on a project involving the use of the Logic Analyzer function of the Analog Discovery 2. I have observed that its Record Mode can be used to capture huge samples of data. The only problem that I'm having is it takes too long for the Record Mode to fill its memory before returning results even when the sample size used is 20k. I would like to know if it is possible to make the Record Mode of the Logic Analyzer intelligent in a way by making it stop filling its memory when the data to be transmitted has already been received. Because the application that I'm using Record Mode for should do so in order to return results faster. Any advice would help a lot. Best regards, Lesiastas
  4. Greetings! I'm working on a project using the Analog Discovery 2. I observed that the Pattern Generator can be used as a Transmitter and the Logic Analyzer can be used as a Receiver, if used properly. Here's the VB Script that I've been working on: AD2_Time_Testing.rar The VB Script does the following: 1). ASCII data is entered. 2). The algorithm in the code will convert it into binary to be transmitted by the Pattern Generator. 3). The Logic Analyzer will receive the bits in Record Mode. 4). The UART decoder algorithm will convert the bits received back into ASCII character. The result that I'm expecting is this: "U" ---> (Converted into Binary) ---> (Transmitted by the Pattern Generator) --> (Bits received in Record Mode) --->(BIts will be converted back in ASCII) ---> "U" The actual result that I'm getting is this: (DIO#0 (Tx) and DIO#2 (Rx) was used) Data that is to be transmitted: I connected DIO #0 to DIO #2 and a UART controller. Data was sucessfully transmitted and it was received by the UART controller: I also observed the bits returned by the FDwfDigitalInStatusData became like this: I think because of this change the UART Decoder algorithm cannot process it properly. That's why I'm getting this result: The output of DIO0Mesg should be "U" as well. Any advice regarding this? Best regards, Lesiastas AD2_Time_Testing.rar
  5. Greetings, I'm working on a project utilizing the Pattern Generator function of Analog Discovery 2. I chose the Pattern Generator function based from the WaveForms GUI. In that interface, it can be used to transmit data in parallel. I created a VB Script consisting of Pattern Generator APIs, it was working fine. The problem that I encountered is its possible limitation: it can only transmit up to 102 characters. Each character consists of 10 bits (1 Start bit, 8 Data bits, and 1 Stop bit). Here are example of that scenarios: 1). Transmitted messages using DIOs #0 and #1 were received by 2 UART Controllers successfully. 1st message was exactly 102 characters. I added another character to the longer message and it became 103 characters. 2). The received results of the 2 UART Controllers is this: It was just blank for the other trials that I've done. My question is can the Pattern Generator be used to transmit data with a length more than 102 characters? If I want to transmit a minimum of 256 characters, can the Pattern Generator handle it? Any advice will surely help. Best regards, Lesiastas
  6. Greetings, Is there a way to receive 0/1 values for the captured samples using FDwfDigitalInStatusData? I tried transmitting ASCII "a" but the result for each channel is different. I expected and wanted a result of Binary (1000 0110) using ASCII "a", but the actual result that I got was different for each DIO channels. Actual result using DIO #0 = (1)000 0(1)(1)0 Actual result using DIO #1 = (2)000 0(2)(2)0 Actual result using DIO #2 = (4)000 0(4)(4)0 Actual result using DIO #7 = (128)000 0(128)(128)0 I want the result from DIO #1, 2, and 7 to display 0/1 values, but I haven't had any breakthroughs so far. I'm aware that I asked this question sometime ago, but I decided to start a new thread because the other one is too long already. The previous advice that was given to me is from this link: The problem is, I did not fully understand how to apply it to the code I'm working on given below: Dim idxDevice As Integer : idxDevice = -1 Dim handle As Integer 'LA Parameters Dim phzFreq As Double Dim acqMode As Integer : acqMode = 0 Dim trigSrc As Byte : trigSrc = 3 'trigsrcDetectorDigitalIn As Byte = 3 'Set Trigger Bits for Channels to be used Dim LowStateTrigger As UInteger : LowStateTrigger = 0 Dim HighStateTrigger As UInteger : HighStateTrigger = 0 Dim RisingEdgeTrigger As UInteger : RisingEdgeTrigger = 0 Dim FallingEdgeTrigger As UInteger : FallingEdgeTrigger = &HFFFF Dim BaudRate As Double : BaudRate = 9600 Dim nBits As Integer : nBits = 16 Dim SampleMode As Integer : SampleMode = 0 'DwfDigitalInSampleModeSimple As Byte = 0 '4096 for 8bit, 2048 for 16 bit, 1024 for 32bit Dim cSamples As Integer : cSamples = 2048 Dim cSamplesAfterTrigger As Integer : cSamplesAfterTrigger = cSamples - 1 Dim fReconfigure As Integer : fReconfigure = 0 Dim fStart As Integer : fStart = 1 Dim fReadData As Integer : fReadData = 1 Dim sts As Byte Dim rgwData(cSamples) As UInt16 Dim countOfDataBytes As Integer : countOfDataBytes = 2 * cSamples 'Opening Device Call AD2_FDwfDeviceOpen(idxDevice, handle) 'DigitalIn Parameters Call AD2_FDwfDigitalInInternalClockInfo(handle, phzFreq) Call AD2_FDwfDigitalInAcquisitionModeSet(handle, acqMode) Call AD2_FDwfDigitalInTriggerSourceSet(handle, trigSrc) Call AD2_FDwfDigitalInTriggerSet(handle, LowStateTrigger, HighStateTrigger, RisingEdgeTrigger, FallingEdgeTrigger) Call AD2_FDwfDigitalInTriggerAutoTimeoutSet(handle, 10.0) Call AD2_FDwfDigitalInDividerSet(handle, (phzFreq / BaudRate)) Call AD2_FDwfDigitalInSampleFormatSet(handle, nBits) Call AD2_FDwfDigitalInSampleModeSet(handle, SampleMode) Call AD2_FDwfDigitalInBufferSizeSet(handle, cSamples) Call AD2_FDwfDigitalInTriggerPositionSet(handle, cSamplesAfterTrigger) 'Configure for Reception Call AD2_FDwfDigitalInConfigure(handle, fReconfigure, fStart) 'Start Reception Call AD2_FDwfDigitalInStatus(handle, fReadData, sts) 'Retrieves Captured Samples Call AD2_FDwfDigitalInStatusData(handle, rgwData, countOfDataBytes) 'Closing Device Call AD2_FDwfDigitalInReset(handle) Call AD2_FDwfDeviceClose(handle) Any advice would really help a lot. Thanks in advance Regards, Lesiastas
  7. Greetings, I am creating a VBA Macro Script to enable the Pattern Generator function of Analog Discovery 2 for parallel transmission of data. I've already created a VB6 Wrapper (Pattern_Generator) containing these two files: 1). Pattern Generator Wrapper.txt(Calls APIs from dwf.vb) 2). dwf.vb I've referenced it to a VBA Script to call those functions using this snippet of codes: Public TxWrapper As Pattern_Generator.ComClass1 Public Function PatGenForTx() Set TxWrapper = New Pattern_Generator.ComClass1 'PatGen Parameters Dim rgBits1 As String: rgBits1 = "UART" Dim n As Long: n = Len(rgBits1) + 1 Dim idxDevice As Long: idxDevice = -1 Dim handle As Long Dim phzFreq As Double Dim idxChannel1 As Long: idxChannel1 = 0 Dim fEnable As Long: fEnable = 1 Dim secRun1 As Double: secRun1 = (n * 8) * (1 / 9600) Dim cRepeat As Long: cRepeat = 1 Dim t As Long: t = 1 ''DwfDigitalOutTypeCustom As Byte = 1 Dim i As Long: i = 2 ''DwfDigitalOutIdleHigh As Byte = 2 Dim countOfBits1 As Long: countOfBits1 = n * 8 Dim fStart As Long: fStart = 1 'Initializing Device PatGen = TxWrapper.AD2_FDwfDeviceOpen(idxDevice, handle) 'Setting for enabling 1st Channel PatGen = TxWrapper.AD2_FDwfDigitalOutInternalClockInfo(handle, phzFreq) PatGen = TxWrapper.AD2_FDwfDigitalOutEnableSet(handle, idxChannel1, fEnable) PatGen = TxWrapper.AD2_FDwfDigitalOutRunSet(handle, secRun1) PatGen = TxWrapper.AD2_FDwfDigitalOutRepeatSet(handle, cRepeat) PatGen = TxWrapper.AD2_FDwfDigitalOutTypeSet(handle, idxChannel1, t) PatGen = TxWrapper.AD2_FDwfDigitalOutIdleSet(handle, idxChannel1, i) PatGen = TxWrapper.AD2_FDwfDigitalOutDividerSet(handle, idxChannel1, (phzFreq / 9600)) PatGen = TxWrapper.AD2_FDwfDigitalOutDataSet(handle, idxChannel1, rgBits1, countOfBits1) 'Start Site 1 Transmission PatGen = TxWrapper.AD2_FDwfDigitalOutConfigure(handle, fStart) 'Closing Device PatGen = TxWrapper.AD2_FDwfDigitalOutReset(handle) PatGen = TxWrapper.AD2_FDwfDeviceCloseAll() End Function But I am encountering this error at the FDwfDigitalOutDataSet: Any advice? Regards, Lesiastas
  8. Greetings, I would like to replicate the result being captured by the Logic Analyzer GUI here: Is it possible to combine the Digital_UART and DigitalIn Functions to create a VB6 wrapper that will display results like in the GUI? I'm not sure if my hunch is correct or possible, but since the UART is a setting in the Logic Analyzer GUI: I suspect that we can implement the Digital_UART function into one of the DigitalIn APIs available in order to create a VB6 program to receive data that is composed of both: 1. Captured Bit Sequence of character sent (Like in the Data Line of the WaveForms GUI) , and 2. Its equivalent ASCII format (Like in the UART Line of the WaveForms GUI). Any advice? Regards, Lesiastas
  9. Greetings, I am creating a VBA program which uses the DigitalOut Functions in the dwf.vb file to replicate the capability of the AD2's Pattern Generator. I'm having trouble of declaring the FDwfDigitalOutDataSet API in VBA. I always encounter this error: I am aware that this is because of some data types in VB6 that are not supported in VBA. I've encountered similar errors in the FDwfDigitalOutRepeatSet and the FDwfDigitalOutDividerSet API. What I did was change the UInteger data type to Integer, since its the data type supported supported in VBA. Function FDwfDigitalOutRepeatSet(ByVal hdwf As Integer, ByVal cRepeat As Integer) As Integer End Function Function FDwfDigitalOutDividerSet(ByVal hdwf As Integer, ByVal idxChannel As Integer, ByVal v As Integer) As Integer End Function I already changed countOfBits in FDwfDigitalOutDataSet from UInteger to Integer, but the error is still present. I think the error is because of the <MarshalAs(UnmanagedType.LPArray)> used in the FDwfDigitalOutDataSet. What changes could I do to FDwfDigitalOutDataSet in order to agree with VBA? Function FDwfDigitalOutDataSet(ByVal hdwf As Integer, ByVal idxChannel As Integer, <MarshalAs(UnmanagedType.LPArray)> rgBits() As Byte, ByVal countOfBits As Integer) As Integer End Function Sorry in advance, but I could be wrong since I'm a complete novice in coding, especially across different programming platforms. Any advice on how to work around this? Regards, Lesiastas
  10. Greetings, Forgive me, but I'm not that knowledgeable in python and I'm having trouble understanding the "create_string_buffer" argument in the Digital_UART.py sample code. How do you declare this "create_string_buffer" statement into its VB6 equivalent? Sincerely yours, Lesiastas
  11. Greetings! I'm working on a project involving the use of the Analog Discovery 2's Logic Analyzer feature and I've been tasked to recreate its function through the use of a VB6 Wrapper. I'm having a hard time finding the correct APIs to use. The Python sample codes in the WaveForms SDK folder isn't working when I tried to use it in receiving ASCII bits from a UART controller. For people like me that aren't good in coding, it would be great if it would at least contain more examples showing the different uses of the settings present in the Logic Analyzer GUI. So I just set some additional APIs that could help my code and here's the code that I've made so far: The main showstopper that I've encountered right now is the highlighted API in the picture above. It's suppose to retrieve the acquired data samples from the instrument, but it still cannot receive the bits of the ASCII character that I'm sending. This is the result that I'm trying to replicate using the Logic Analyzer APIs: I used a UART Controller as the Tx to the VB6 Wrapper while I was doing breakpoint debug in it to see the received bits. These are the results that I got: It received a "1" and "0" bits unlike the one in the Logic Analyzer GUI. I could be wrong, but I think the problem is I still haven't set the Trigger and Trigger Detector APIs for the Logic Analyzer properly. Any advice guys?
  12. Greetings! I'm currently working on a project involving the use of the Analog Discovery 2's Logic Analyzer. I was tasked to created a VB6 Wrapper to replicate the functions of the Logic Analyzer WaveForms GUI. I'm not very knowledgeable in coding so I was wondering how to translate this python variable from the DigitalIn_Acquisition sample code into its VB6 equivalent: Here's the VB6 code that I made: Again, I'm very sorry, but I'm still a novice at coding. Though I understand that you can't insert a UShort value in a 1-Dimensional Byte Array, I can't think of a way to declare it in order to agree with the Byte Array Data Type. Any advice guys?
  13. Greetings! I'm working on a Project involving the use of the Analog Discovery 2's Pattern Generator function. I was tasked to create a VB6 Wrapper in MS Visual Studio 2013 that will perform the functions of the Pattern Generator by calling certain APIs from its dwf VB.NET file. I have two concerns on how to do this. First, as I looked at the WaveFormsSDK sample codes and the WaveForms™ SDK Reference Manual, there is no API available for setting the clock frequency of the Pattern Generator, unlike in its WaveForms GUI. The only API available is the FDwfDigitalOutInternalClockInfo, which only retrieves the internal clock frequency, not set it to want I need. Secondly, what I need is to sucessfully transmit an ASCII character using the APIs of the Pattern Generator. I'm a novice at coding, especially with complicated routines, so I'm having trouble with coding for the FDwfDigitalOutDataSet API. What I want to do is to send an ASCII character using a string variable that will be converted into its binary equivalent using the snippet of codes below and store those values to the rgBits variable, which is a byte array to transmit it. For example, I'll use ASCII character "U", convert it to its binary form which is Bin(01010101) and put those values in the rgBits variable to be sent to a UART Controller or Logic Analyzer to see if it was transmitted properly. I came up with these codes but I don't think its the correct way of doing it. Sorry but I'm really, really not that good at coding. It would really help to receive some advice on how to do it. 'Convert String to Binary Dim Text As String = TextBox1.Text Dim oReturn As New StringBuilder 'but first, convert String to Byte() Dim PatGenTx As String = ("") Dim rgBits() As Byte ReDim rgBits(0 To Len(PatGenTx)) For i = 1 To Len(PatGenTx) rgBits(i) = Asc(Mid(PatGenTx, i, 1)) Debug.Print(rgBits(i)) Next 'Then store binary values into byte array For Each Character As Byte In ASCIIEncoding.ASCII.GetBytes(Text) oReturn.Append(Convert.ToString(Character, 2).PadLeft(8, "0")) oReturn.Append(PatGenTx) Next TextBox2.Text = (oReturn.ToString) 'Take note: bits order is lsb first ' for TS output the count of bits its the total number of IO|OE bits, it should be an even number ' BYTE: 0 |1 ... ' bit: 0 |1 |2 |3 |...|7 |0 |1 |... ' sample: IO|OE|IO|OE|...|OE|IO|OE|... Dim countOfBits As UInteger : countOfBits = 8 Thank you and God Bless you guys.
  14. Found a wrapper DLL that should interface from a VB app to the API dwf.dll for the Discovery. The excell VB app and the wrapper dwfw.dll are provided from a developer at:\ https://shop.trenz-electronic.de/de/Download/?path=Digilent/27069-Analog Discovery 2/Analog Discovery based LCR-Meter When I run the app I get an error that can not find the dwfw.dll file. I have put it in same directory as excell, tried in the windows\system32 directory still no luck. Has anyone tried this app with their Digilent module??? I am having a similar issue with my vb own app and wrapper so I though I would try running someone elses first and look at the code. Was not successful here either. Thanks for your help. Ray