Serial Port Problems on Windows Server 2008 - serial-port

I've an application that uses GSM commands sent over a serial port to a GSM ModeM.
The application works just fine on Windows XP, 7 etc., but sometimes it does not connect to the serial port on Windows Server 2008.
I tried to check using an application called Tera Term, but when I try and connect it to the port where the ModeM is supposed to be connected to, I get an error saying the COM1 port is not available ( it is the required port ).
This could indicate that the COM port is busy or occupied...and indeed when I try to rename the port, I get a Windows Warning that port is opened by some other application and renaming it can have consequences etc.etc...
How do I find out which, if any, application is using the COM port? I tried Portmon, but it remains greyed out in the Ports/capture area...so I cannot use it to find out what's happening with it?
Could anyone please tell me if there's a problem with the COM port detection in Windows Server 2008? Or if it's a problem with Tera Term/ PortMon that they're not able to detect the COM port?
This issue is baffling..kindly help me on this.
Thanks...

I think you should be able to use Process Monitor to find out which application is opening or accessing the COM1 serial port, or at least figure out what is going on. It has been while since I last had to do this so I don't remember the details of how to go about doing that.
If you decide to do this, I recommend running Process Monitor on a system that you are able to get this to work successfully first. That way you can see what a "normal" system looks like and compare it to what you are getting on the Windows Server 2008 system.

Related

Simulate com port on pc to be recognised by other pc

Currently I have a server, that communicates with a projector through a RS232. The server opens a com port when the projector is connected. The same happens to any PC when a certain type of device is connected through the USB (lets say an Arduino for example). What I want to do it basically replace the projector with a PC/Arduino/Raspberry without the server noticing anything. That would mean the server will recognise the connected PC and open a COM port for it. What do I need to do on the PC so that it automatically opens a com port on the server? I guess there is something very basic that any printer, Arduino, projector etc does, that computers recognise it as a "com port device".
P.S. Doesn't matter the OS on the PC, I just need to make it work and then implement w/e I need to do with the established communication over the port.
P.S.2 I've searched a lot about it, but probabl I am doing it wrong, because I didn't find my type of question anywhere.
COM ports are basically hardware that is detected by the system. Let's say, if an Arduino is connected to a PC, it has its onboard USB to TTL converter which can be found in the device manager(if using windows). Similar USB to TTL converters are there in the market like CP2102, PL2303 which acts like a COM port even if no device is connected further to it. it may be possible that the program you are using(as you referred server) may be sending some data over the serial port and verifying the hardware.
What you need to do to replace it is, first of all, find the baud rate at which the communication is going on, then, listen over the serial lines which machine is sending which message in the sequence(there must be a handshake as I mentioned earlier), if a complicated algorithm is not used by the device, you can simply mimic the device by sending same messages over serial.

Serial to Ethernet converter connected directly to router/switch

I have a digital scale for trucks that is currently connected to a Windows XP computer that is unusable because of all the bloatware and viruses installed in it and the fact that the pc is 15 years old and it can't be formatted because the software and drivers for weighing the vehicles would be lost.
I'd like to develop a web application and configure a pc with Ubuntu Server running LAMP, and upgrade the whole thing so I can get rid of the old XP computer and work everything from a web browser.
I can connect and process the serial data using either NodeJs or Python, but I did that by connecting to the scale directly with my laptop.
What I need is to be able to connect to the serial port from another office where the PC with Ubuntu Server will be.
Is it possible to attach the digital scale to an ethernet adapter that doesn't require a host computer ???
My main problem is that I need the server to not be in the same room where the scale is and ethernet is my only option since there is an ethernet cable that runs undeground to where the scale is and is connected to a small switch which the people that weigh the trucks use.
I guess one option would be to use a Raspberry Pi maybe (since it's small enough) to connect the to the LAN and to the scale, and transmit the data whenever the server requests it, but I don't know if maybe just by using a converter only, the server could connect to the scale and get the data without the use of a host...
Any help would be greatly appreciated!

Is it possible to access virtual serial ports via Web Serial API?

I seem to only be able to access physical ports. I do want to access virtual ones like ones created with virtual null modem or virtual serial port driver.
Does anyone know if this is possible.
Chrome enumerates serial ports by calling SetupDiGetClassDevs with GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR. As I discovered when implementing this enumeration logic there are a surprisingly large number of ways to ask Windows for a list of all available COM ports. The advantage of this approach being that it provides device information which can be used to get the human-readable name of the device and USB product identifiers if it is a USB device. It is likely that a virtual COM port driver may be creating the device in a way which prevents it from being discovered this way.
I've created https://bugs.chromium.org/p/chromium/issues/detail?id=1238369 to track this as a Chrome bug. Please comment on whether you are using a different virtual serial port driver than the one mentioned there.
I managed to get Chrome to see the virtual serial ports using com0com on Windows 10 21H1 (OS Build 19043.1110). Chrome connects to the port successfully and it works as expected:

Serial communication crashes in LabVIEW

I am controlling a device over serial connection using LabVIEW (version 7.0). It is connected using USB, and is installed as a virtual serial port on the computer (running Windows XP). Every now and then my device crashes when my program sends a command, and it is unable to accept any more input (the device itself also stops working) until it has timed out.
I've looked at the serial port traffic using Portmon. Whenever the device crashes the serial driver sends the command I send using my program four times instead of just once, with an IOCTL_SERIAL_GET_COMMSTATUS command in between. I cannot see what this last command returns, but I assume something happens in the communication earlier on. I'm thinking my configuration of the port is not entirely right, but I have no idea how or why. I open and close the connection to my device every time I want to write something to it.
For completeness' sake: it has a baud rate of 9600, 8 bits, no parity, 1 stop bit, and no flow control. I'm aware that the correct settings of these parameters depend on the device, but the manufacturer has not supplied any recommended settings.
The driver is a DLL of some sort? If so, this is the most likely source of your problem, and you likely will need to contact the author of the driver. LabVIEW does have crashing bugs, but by far the most common source of crashes in simple communications apps is a buggy third-party DLL.
In other words, I doubt this is a LabVIEW problem at all and that you would have the same difficulty if you wrote a C program to talk to this driver. I only know what you've posted here about your system, but after many years of chasing down such issues, I would start with the device manufacturer/driver author.
If you have evidence to the contrary, please share.

COM port lockup with Mbed Virtual Serial Port

I am working with someone using Mbed and a LPCXpresso11U68 board.
I'm not intimately familiar with this particular board, but it has two USB connectors on it, one for the OpenSDA-ish debugger, and a second one is a direct connect to the CPU. I can connect both of these ports to my PC and attach a terminal emulator to each of them, and both ports show output (with a small installed program running on the board).
The device manager shows me that one port (COM51) is using "mbed Serial Port" driver and the other port (COM52) is using "Mbed Virtual Serial Port.
So far so good...
There is a reset button on the board. If I press that button, the port that is attached to the PC using the Mbed Virtual Serial Port driver (in my case COM52) stops operating. The other port (COM51) just restarts cleanly.
The problem I'm having is that after I exit the terminal program (note this happens with both TeraTerm and uCon), if I attempt to reconnect to that port, its not in the list of available comports. Strangely thought, it is still present in the Device Manager.
The only way I've found that I can clear this problem is to unplug/plug that usb cable (COM52) or issue a BREAK condition to COM51 (which AFAIK, resets the board).
I am the writer of uCon and I'd like to be able to detect this (which I can), and also be able to restart the comport connection without any other manual intervention.
One final note: apparently this is not specific to the LPCXpresso11U68 board; my guess it is some issue with the Mbed Virtual Serial Port driver.
Anyone have a clue what may be going on here?

Resources