I need to communicate with a bar code scanner connected over a serial port in Microsoft Access. In older versions of Access I was able to use a wrapper around MSCOMM32.ocx that no longer seems to work. I can't use wedge communication because I need to use ACK/NACK which is only supported through the RS232 interface and I need to send messages to the scanner, which is also only supported through the RS232 interface.
Are there any controls in widespread use that support serial communication in Access 2007?
EDIT: In case anyone comes across this, the newest version of MSCOMM32.ocx (I believe dated 3/09) still works fine as of this writing. It is older versions of MSCOMM32.ocx that do not work.
I can't vouch for the answer, but I can say that Tony Toews is a reliable person, and on this topic, he posted on his blog last year:
An older version of MSCOMM32.OCX has had the "kill bit" flag set.
As Tony says, it's almost always better to rely on Windows APIs than it is to build your app with connections to an ActiveX control. Windows APIs don't really have the versioning problems that ActiveX controls and OCX's do.
Related
I need to obtain information about my servers running on Linux Redhat, Windows Server 2003 and Windows Server 2008. I have found the SNMP protocol to be useful for my purpose, but I am not clear how to implement it in my application. I don't even know how to get started.
Also, is it possible to monitor the applications/programs running on the servers? It is my first time working with SNMP, so I am finding it extremely difficult to understand how it has to be implemented. I have understood the architecture of SNMP(SNMPManager, SNMPAgent, Trap messages, MIB), but finding it difficult to implement them.
Please guide me in as detailed way as possible and mention links to any tutorials.
SNMP is not so simple as should be... if you want to provide control to your system/resources the best choice is to use an external native tool like:
PRTG:You can use free evaluation sensor
CACTI: open-source and web-based tool
SolarWinds:expensive but powerful choice
After that you can monitor your system using WMI protocol (for Win OS), direct agent installed on it or script.
Im in need of a solution, I basically require a way to print from a web page to a printer. But the printer needs to be standalone, either plugging directly into phone line, using a sim card etc. Does anyone know of a good solution for this?
It needs to be cheap to run, setup costs aren't that much of an issue, but obviously the cheaper the better.
If landline is okay, I believe the device you want is an antiquated piece of hardware called a "fax machine"
If wireless on a mobile network, the service plan is more of a cost concern than the hardware, though the two might be bundled together. For example, a company called bug labs is working on some kind of partnership with verizon for connecting their embedded linux device construction kit.
I'm looking for a tool along the lines of Fiddler, or better yet Wireshark, that would run on a Windows Mobile 6.1 device.
I have an app which calls some webservices on one of our servers, and I want to make sure it it going out to the proper address.
Whenever I want to test something like that I connect the device to my PC and use ActiveSync. The mobile device then can send all of it's internet requests through the PC. Wireshark can then be used to sniff the traffic coming in and out of the device. Works good and is a stable approach.
I recently had to search for this myself. There are a few of these out there but most are old and have not been updated recently. If you are looking for one to sniff the WiFi traffic it should be simple and Google should provide something suitable. However the issue I ran into (and could not get around with about 3hrs invested) was trying to sniff the EV-DO/Cell data connection. Seems the cell radio uses a different type of network driver then the WiFi connections on a WinMo device. Not much of an answer, sorry, but I figured I would share my experiences.
There is an experimental version of WinPCap for windows CE.
Maybe it will work for you.
A bit of history: We have an application, which was originally written many years ago (1998 is the first date in PVCS but the app is about 5 years older than that as it originally was a DOS program). This application communicates with a piece of hardware via serial. When we got to Windows XP we started receiving reports of the app dying after a short time of running. It seems that the serial comms just 'died' and the app was left in a stuck state. The only way to recover from this situation was to restart the application.
The only information I can find regarding this problem was apparently the Windows Message system would miss that information was received, the buffer would fill and the system would get stuck. This snippet of information was left in a old word document, but there's no evidence to back this up. It also mentions that this is only prevalent at high baud rates (115200+).
The solution was to provide customers with USB->Serial converters along with the hardware.
Today: We are working on a new version of the hardware that will run across a network as well as serial ports. So to allow me to work on the network code, minus the actual hardware we are using a VSCOM NetCom113 device. It also installs a virtual comm port on the users (ie: mine) machine.
Now I have got the network code integrated with the app, it appears that the NetCom device exhibits the same behaviour as a physical commport. This is undesirable as I need the app to run longer than ~30 seconds.
Google turns up zero problems that we experience.
I was wondering:
Has anyone experienced this before? If so what did you do to fix/workaround the problem?
Does anyone have any suggestions as to whether the original author of the document is correct and what I can do to test the theory?
Unfortunately I can't post code as the serial code is tightly couple with the rest of the system, though if you have questions regarding it I can answer questions about it.
Updates:
The code is written using Win32 Comm routines - so I am using CreateFile, ReadFile. There's also judicious calls to GetOverlappedResult.
It's not hanging per se, it's just that the comms stops. You can access the menus, click the buttons, but nothing can interact with the connected hardware. Using realterm you can see that no data is coming in or going out.
I think the reference to the windows message is that the problem is internal to windows. Data has arrived but the kernal has missed it and thus not told the rest of the system about it.
Flow control is not used.
Writing a 'simple' test is difficult due the the fact that the code is tightly coupled and the underlying protocol is quite complex and would require a lot of work.
Are you using DOS-style serial code, or the Win32 CreateFile approach?
If the former, be very suspicious: if at all possible I'd convert to the latter.
If the latter, do you know on what kind of system call it's hanging? Are you in a blocking read call? or an overlapped I/O call? or waiting on an event? (I'm not sure I have enough experience to help, but those are the kinds of questions that come to mind)
You might also check into the queue size, which you can set with the SetupComm function.
I don't buy the "Windows Message system" stuff -- it sounds fishy; you can write good Win32 serial i/o code that never uses Windows messages.
edit: does your Overlapped I/O use events? I seem to remember something about auto-reset events occasionally missing their trigger... check your overlapped I/O calls very carefully to see whether you're handling the possible outcomes properly. Perhaps there's a way to make your code more robust by automatically cancelling the overlapped i/o and restarting another read. (I assume the problem is in the read half, not the write half?)
edit 2: A suggestion: assuming the win32 side has missed a byte or packet, and your devices are in deadlock because they're both expecting each other to respond to something, can you tweak the other side of the serial I/O to regularly send some type of "ping" packet with an incrementing counter? (and log the ping packets on the PC side; that way you can see whether you've missed any)
Are you sure you have your flow control set up correctly? DTR, RTS, etc...
-Adam
i have written apps that use usb / bluetooth serial ports and have never had an issue. with bluetooth i have seen bit rates (sustained) of 800,000 bps for long periods of time. most people don't properly implement the port.
My serial port
Not sure if this is a possibility for you, but if you could re-write the code using C#.NET you'd have access to the SerialPort class there. It might remedy your problem. I know a lot of legacy code based around the Win32 API for hardware I/O ports tended to fail in XP due to timing (had a small bit of experience with MIDI).
In addition, I don't know if you can use the Win32 method of Serial Port access in Vista, so that might shut out future MS OSes from being able to use your code.
I'm talking about http://en.wikipedia.org/wiki/Quality_of_service. With streaming stackoverflow podcasts and downloading the lastest updates to ubuntu, I would like to have QoS working so I can use stackoverflow without my http connections timing out or taking forever.
I'm using an iConnect 624 ADSL modem which has QoS built-in but I can't seem to get it to work. Is it even possible to control the downstream (ie. from ISP to your modem)?
I don't know if this will help you, but I've never been a fan of using the ISP provided box directly. Personally I use a Linksys wrt54gl, with DD-wrt, behind(DMZ) my ISP provided box.
DD-wrt has excellent QoS management.
Sorry I can't be more help with your existing hardware.
You just need the tc command to handle the QoS on Linux boxen. However I wouldn't expect that much from it because of the results I obtained and detailed here.