I am currently attempting to use a computer and RS232 connection to control a HP 34401A Multimeter. I am able to use commands such as "SYSTem:REMote" or "*TST" however when I attempt to use a command that sends back information nothing is returned to the computer. If I use another return command directly after I get a -410 error signifying that the output buffer is full. Are there any commands I need to use to tell it to send the information to the computer? I have been looking through the manual for one but cannot find it.
Extra Info:
RS232 Connection Setup: Baudrate=9600, Data bits=8, Stop bits=2, Parity=None
Since the connection is DTE to DTE I am using a null modem cable
I am using Termite to send commands to the multimeter
Thank you for any help!
Related
I am programming some functions in a STM32 board. This functions consist in sequences of AT commands, which are sent over UART to the SIM7000E module, to do different tasks. The module uses a SIM with GSM.
The configuration function sends the following commands:
AT+CPIN=1234
AT+CREG=1
AT+CGATT=1
AT+CIPMUX=0
AT+CSTT="vpn","user","password"
AT+CIICR
AT+CIFSR
Now I want to program a function to check if the module is consuming network data after the configuration function. I am not sure whether I should check CREG, CGATT, CIICR or other command.
So the question is: In which point is the SIM consuming network data?
Thank you in advance!
I think It starts consuming data after the AT+CSTT command. Until the AT+CSTT command, module does not have the GPRS connection. After the AT+CSTT commands it is open to GPRS calls.
On the other side, even if you have an unvalid SIM card before the attaching the network, you can not know that you have data packet or not. I think like that I am not %100 sure but, I suggest like that.
We have an Arduino Uno connected to an ESP8266 and a bunch of other devices. We are using the ESP8266 as a WiFi connector (obviously) to send data to REST API.
Our problem is that we have to use an open network, and there is no AT-* command that does "connect to SSID without password".
We have considered using the CWJAP command, passing password as "", but have failed -- that may be because of a dumb AP we used (TPLINK), but we are wondering if this is the right approach (sending nothing vs nothing being sent dilemma).
Have you perhaps had any success with using such a configuration?
Proper way to connect to open network using AT commands is to provide:
AT+CWJAP=ssid,password
for example:
AT+CWJAP="Johns Network", ""
Which would be a string:
"AT+CWJAP=\"Johns Network\",\"\"".
Just received my first ESP8266 wifi module with some excitement. However I've been unable to fully communicate with it. I have connected the module to my computer via a usb to serial cable and I'm power the module via a separate power supply (3.3v).
After powering the module up I receive the following information (via PuTTY or and Arduino serial monitor window):
[Vendor:www.ai-thinker.com Version:0.9.2.4]
ready
I have tried sending various AT commands e.g.
AT+RST
But I get no response. Using ctrl+m and ctrl+j in putty didn't help either.
Please see my youtube video if its helpful:
https://www.youtube.com/watch?v=RvasOuHuWDc
To get AT OK .
1.AT + PRESS ENTER + THEN CTRL +J WILL GIVE OK
2.Then Enter commands to execute
eg AT+GMR ->presss enter then ctrl+j
to get firmware
repeat step 1 for each command.
Make sure that you have putty or the Arduino serial console configured to send both a newline \n and a carriage return \r character. So AT+RST actually ends up being AT+RST\r\n. This took me a bit when I first received my ESP8266 modules. On the Arduino serial console this option is at the bottom of the window. I can see in your video you have it set to no line ending. Hopefully that does it for you.
I want to send some pictures for a sever with a GPRS Module. At first i had a sim900 module and I could send data with it with these AT commands:
at+cgatt=1;+cstt="myapn";+ciicr;
at+cipstart="tcp","ip","port"
As I said with these commands I could send some data to my test server. But it encountered some problems and i've changed it with a Siemens MC55 GPRS Modem. But I can't run these commands any more for connecting to my server and i get ERROR.
How can I fix this problem?
AT data connection commands are inherently different from modem to modem. Do you have a copy of the user manual? The user manual is extremely good for the MC55i!
As a side note execute:
AT+CMEE=1
To improve the error reporting so that you get real error codes and not just ERROR
We are trying to connect two Hyper-V VMs through a serial port. Hyper-V exposes the serial port as a named pipe to the host system, and implements the server end of the named pipe. Consequentially, to connect them, we need to write a named-pipe client which connects to both VMs, and copies the data back and forth.
We have written such an application. Unfortunately, this application loses data.
If we connect two hyperterms, and have them exchange data, the transmission sometimes succeeds, but in many cases, the receiving end reports errors, or the transmission just deadlocks. Likewise, if we use the link to run a kernel debugger, it also seems to hang often.
What could be the cause of the data loss? What precautions must be taken when connecting named pipes in such a manner?
Edit: We have worked around the problem, using kdsrv.exe. The COM port of the debuggee continues to be exposed through a named pipe, however, the debugger end talks to kdserv via TCP.
The data loss is not due to the named pipes. It is infact the COM ports (emulated and physical) that may lose data since they operate with a small buffer in the UART.
The named pipe receives all the data that is written to the COM port. Your program reads data from the named pipe and writes it to another named pipe. This is where data loss can originate if you write too fast the receiveing COM port's UART can overflow leading to data loss.
You may need to add some delay to avoid exceeding the baud rate expected by the receiving side.
In addition, you are missing ResetEvent() calls in your program.
For your KD issues, you may need to add resets=0 to the connection string.
I did not try to connect VM via Serial but I connected VM and Host via usb (through network)
and it works.
If it is required for your software to establish serial connection try to test via serial emulators with work through tcp\ip.
I think John's suggestion is correct - if u are using a slow CPU to emulate TWO VM, then the guest OS's drivers for serial port is highly drifted away from the high speed version. So John's suggestion is to set the input/output side of the serial link to the slowest possible speed. Ie, you cannot use high baud rate for the inter-VM serial communication. Instead u have to use the slowest possible speed, and so that the VM guest driver will take that cue and use the slower version of the driver. But your physical machine must have sufficient CPU speed to run two VM concurrently, to avoid the "emulation drift" of the the serial driver.
Well, just my guess, but there is a VirtualBox version of your problem, seemingly no issues running it:
http://bodocsi.net/2011/02/how-setup-serial-port-link-in-virtualbox-between-two-guest-virtual-machine-in-linux/
But the following bug ticket for VirtualBox does describe many similarities to your problem:
https://www.virtualbox.org/ticket/1548
And reading the end seemingly indicate the solution has to do with VirtualBox's internal source code. Perhaps it is Hyper-V's problem?