|
I wouldn't have throught so since RS232 ports may be old and slow but they are incredibly reliable, if there's a loss of data it's your (or whoever wrote the drivers etc) fault as I've found out on numerous occassions. My father has run tests on all the Serial Port components for VB6 and found that the Microsoft one was by far the most reliable, stuff like Sax didn't do as well.
You're getting the error message because you havn't run it inside the debugger. If you can run it inside VS and it should break on the line which has the null reference, thereby pinpointing your cause immediately.
You know you're a Land Rover owner when the best route from point A to point B is through the mud.
Ed
|
|
|
|
|
i think i solved the problem because data was been retrive from a database when someone dialed an incorrect number anull value was been returned which inturn lead to a ecption because my port reader is expectiing a valid return vlue to use in a calculation, but the thig is at the momment i am one of two application developers i did c, but not c# but the port reader is in c# and i am learning c# but i am not that knowledgeable in the rs232 and little one two tricks f the trades to do eerthing presentl i was jus the webapplication developer using my asp.net, asp and flash and so on but the other guy leavign so i know that his work load is going to eb mine pretty soon, is there anyway u could point me to some good lcations that i can read up on rs232 and how to create supporting solutions to work with them possible even a forum i am suppose to be looking into these two ne ones a mitel smdr and AVYA I think the other one was
kenny
-- modified at 18:13 Saturday 3rd June, 2006
|
|
|
|
|
I don't know of any sites that deal with RS232 specifically, what I know has been achieved through experience. If the reader is in C# then it's just a case of reading and writing bytes to a stream. If you know for definite that you're going to inherit the code then get the other developer to explain the general gist of things to you so that at least you don't have to start from scratch.
You know you're a Land Rover owner when the best route from point A to point B is through the mud.
Ed
|
|
|
|
|
yea fi real i was thinking that would be best, so i think i going to ask him to explain it to me this the problem is that he is not there often, can u send me to a link that shows me how to read and write to byte streams
kenny
|
|
|
|
|
From your JIT error you're using .NET 1.1 which doesn't have a built-in class for dealing with RS232 stuff, .NET 2 does however in the System.IO.Ports namespace. To use this is exactly the same as using a filestream just use the many overloaded Write, WriteLine, Read and ReadLine functions.
You're library (at a guess) MySerialPortReader as this, it may be a wrapper around an existing control or it may be one written from scratch. I cannot tell so I cannot provide any more help.
If you just want to learn how to use the RS232 port the best thing that I can suggest is (if you have two PCs or two serial ports) link them together. Get hold of v2 of the framework so you have a standard component for accessing the serial port. If you're happy programming with Notepad / SciTE / whatever then use that, if not either get hold of the free C# express edition from MS and just create a simple application such as a terminal which anything you write into a textbox gets sent to the serial port, anything received is written into another textbox, you can then add more code to experiment quite easily.
If you only have one PC and one serial port then I strongly suggest making a loopback connector, this acts like 127.0.0.1 but for the serial ports. Essentially what you do is get hold of a female plug for connecting into the back of the PC (you can either buy one, nab one or cannabalise one from an old mouse or someother peripheral), then all you have to do is connect pins 2 and 3 together. If you plug this into the back of your computer, any data sent from that port will be looped back and sent into the same port.
Since I don't know what MySerialPortReader is I'd highly recommend getting .NET 2 for experimentation at least since then everyone including myself has access to the documentation and a similar system.
You know you're a Land Rover owner when the best route from point A to point B is through the mud.
Ed
|
|
|
|
|
|
i am work on creating a reader for a mitel smdr but i dont have any at the moment so currently i am jus reading from a text filed nd doing my adjustments to what i would want the dtaa for.....but i was wonering is there any way i could tste sending the data to the portreader and retriving it??? i found some programms on the internet but they dont seem to be wrking because when i attach my pc to another pc via the serial port and click send for the other pc to send me data i dont recieve it.....is there any program u know that jus accepts a string and sends the data to my pc from their serial port reader..................i was looking at code sample ugave me but i not sure where would iput it would i simply double click on the form i created and go to that code behing that form????
kenny
|
|
|
|
|
keroed_edmond wrote: send for the other pc to send me data i dont recieve it
Unless there's a program sitting on the other end it won't send back any data at all. The best bet would be to create a simple program in .NET 2 that will allow you to send data across the port from the other computer to the one which you are writing the PortReader on.
Just open up VS2005 or the Express editions, drop a SerialPort from the Toolbox onto the form, three buttons and a textbox.
One button will serve as the "Open Port" button, in the event handler put this.serialPort1.Open(); in it.
Another button will serve as the "Close Port" button put this.serialPort1.Close(); in it.
The third button will send the contents of the textbox to the serial port, just put this.serialPort1.Write(this.textBox1.Text); in the event handler.
And there you have a rudimentary write-only terminal.
You know you're a Land Rover owner when the best route from point A to point B is through the mud.
Ed
|
|
|
|
|
question if i create a simple read porter reader program right and i goign to wirite the data to a database will there be any time delay issues if it is implemented on a pbx system that has a high volum of calls????
is there anything i can do to prevent a errorr if a error is possible because of this situation
kenny
|
|
|
|
|
keroed_edmond wrote: implemented on a pbx system that has a high volum of calls
Since I don't know what a pbx system is I wouldn't know. If written correctly I wouldn't have thought so, always keep in mind that RS232 ports have a very high interrupt priority since they don't care if data is received correctly, if you're too slow to do anything about it then that's your problem.
You'd just have to experiment and optimise things appropriately, I don't have an overview or any information on your system so can't help you I'm afraid.
Formula 1 - Short for "F1 Racing" - named after the standard "help" key in Windows, it's a sport where participants desperately search through software help files trying to find actual documentation. It's tedious and somewhat cruel, most matches ending in a draw as no participant is able to find anything helpful. - Shog9
|
|
|
|
|
yow question right the program i wrote to read from the com port works when i try to use itto read from norton smdr right, the data format is wrong because i bulding it for a mitel smdr but thats cool ijus wanted to make sure thatit was readig from the port but when i try running it on a mitel smdr i dont get anything its like it is not even reading from the port i am sure t opens the port becase if i try to run hyper terminal i get an error saying the port is already been opened so iknow my programm has opened the port, but its the reading that giving the problem have u ever encountered thi problem before? or heard fo this problem
u know any possible hints to what may be wrong
kenny
|
|
|
|
|
You're probably not talking to the Mitel SMDR properly, since I've never heard of one of these, much less know what protocol they use I don't know.
There should be some diagnostic command that you can send to the Mitel to get it to respond, e.g. modems have some sort of "OK?" command which they respond to with OK to show that it is up and running, have a dig through the documentation for something like that.
Formula 1 - Short for "F1 Racing" - named after the standard "help" key in Windows, it's a sport where participants desperately search through software help files trying to find actual documentation. It's tedious and somewhat cruel, most matches ending in a draw as no participant is able to find anything helpful. - Shog9
|
|
|
|
|
oh cool u have any ideas what i should check out to see if i am communicating properll with the smdr?? are the other things other than the baud rate,port name,parity, and stop bits????
kenny
|
|
|
|
|
All those should be defined in your documentation for the smdr. There should be a simple "OK?" -> "OK" test message or something similar as one of the command, just to ensure comms are working correctly, see if you can get this working first (I mean even the Lego Mindstorms has this!).
Formula 1 - Short for "F1 Racing" - named after the standard "help" key in Windows, it's a sport where participants desperately search through software help files trying to find actual documentation. It's tedious and somewhat cruel, most matches ending in a draw as no participant is able to find anything helpful. - Shog9
|
|
|
|
|
Hi, i was wondering if it was possible to rightclick an item in a listview and display a menu.
for instance rightclicking an item in a listview and then be able to click "delete" to clear the specific item
Don't be overcome by evil, but overcome evil with good
|
|
|
|
|
|
I am using a default DotNet 2.0 dataset that maps to a connection string in my app.config file.
<add name="PDS.LSS.Properties.Settings.StateConnectionString"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DataStore\LS_Shell.mdb;Persist Security Info=True"
providerName="System.Data.OleDb" />
I need to change the datasource for this connectionstring on the fly when a user selects "Open" from my menu. I already am catching the path values etc for the datasource string but I just can't find the right method to change the datasource.
any suggestions??
Thanks all!
D
You are only as good as your last project.
|
|
|
|
|
I'm trying to get a product to market quickly and need a suite of tools to not only make my app look good but provide some extra features. There's soooo many on the market, but which one(s) will give me value for money
I need
- basic outlook 2003 style controls, menu's, tab folders
- A date control that handles null dates
- A calendar/diary control
- charting
- Filterable & Grouping data grid
- reports ( I've used crystal with out any problems, but is there anything as good where i can create and deploy reports with ease??)
Regards
Andy
-- modified at 16:01 Thursday 1st June, 2006
|
|
|
|
|
Hi,
I am trying to write a WIndows GUI app that access a share on a remote system. both systems are in a workgroup and do not know about each other. All I need to do is to check the date of a file on PC2 via the share
ie.
PC1 to access \\PC2\Share\file.txt <check the="" date="" created="">
In my Windows GUI App I have two fields for a user ID and password to be entered, a text label for the results and a "Go" button to start the process.
I have seen many examples of how to use the impersonate option in asp but I am look for a way to use the same function in a GUI app.
I am aware that I need to use a local account on PC2 for PC1 to use but how do I pass the user info with out being prompted with a windows login prompt???
Hope you can help or point me in the right direction.
Paul
|
|
|
|
|
Hi Paul,
Here's a quick example, hope it'll work for you.
I used ProcessStartInfo and specified user credentials in SecureString These two classes are well documented, so I didn't provide "my version" of documentation.
using System;
using System.Security;
using System.Diagnostics;
using System.Reflection;
namespace RunAsTest
{
class Program
{
static void Main(string[] args) {
StartProcess("WorkGroup", "User", "password", @"C:\windows\notepad.exe");
}
private static void StartProcess(
string domainOrWorkgroup,
string userName,
string password,
string exeName) {
char[] chrPass = password.ToCharArray();
SecureString securePass = new SecureString();
for (int i = 0; i < chrPass.Length; i++) {
securePass.AppendChar(chrPass[i]);
}
ProcessStartInfo psi = new ProcessStartInfo();
psi.UseShellExecute = false;
psi.UserName = userName;
psi.Domain = domainOrWorkgroup;
psi.Password = securePass;
psi.FileName = exeName;
psi.WorkingDirectory = System.Environment.GetEnvironmentVariable("SystemRoot");
try {
Process.Start(psi);
}
catch (Exception e) {
Console.WriteLine(e.Message);
}
}
}
}
Let us know how you get on with your app.
Alex B. Clarke
|
|
|
|
|
Thanks for your responce Alex, however its not what I am looking to do.
From what I can gather the code enable you to start a process/service on another system.
I am only looking to read the file details from the other system.
or is it me not fully understanding your reply.
I have PC1 which needs to access a network share on PC2, both PC's are in a workgroup.
PC1 need to login. Once PC1 is logged inI then want to read the Time and Date stamp from the file to when it was created.
I have 4-6 different systems that this needs to be done to. each system should report back the details from the file and output this to the text label within the App.
I am trying to pass the user login ID and password to the system without being prompted to supply them each time.
However you code came in useful for something else.
Paul
|
|
|
|
|
Hi Paul,
Thanks for your mail - it got me thinking - and working .
I did some research and came up with a possible solution.
Please have a look at my article on CodeProject and let me know if this is what you were looking for.
User Impersonation in .Net
I was not sure how to refernce articles URL on this site, so if the above link gets you nowhere, I published it on my site too where you should be able to get it User Impersonation in .Net
Alex B. Clarke
-- modified at 14:03 Tuesday 6th June, 2006
|
|
|
|
|
We are working with mainframe dates which are in the format of YYDDD where DDD is the day number in the year. Is there a simple way of doing a date conversion to Gregorian in the 2.0 framework?
thanks.
|
|
|
|
|
I don't think Gregorian has anything to do with this.
Try this:
<br />
<br />
int myDate = 06120;
<br />
<br />
int myYear = myDate / 1000;<br />
int myDay = myDate % 1000;<br />
<br />
<br />
DateTime temp = new DateTime(myYear, 1, 1);
DateTime myResult = temp.AddDays(myDay).Date;
<br />
myResult will contain a valid DateTime object that should have your value.
You may be able to combine some steps and do this all inline. I broke it out to demonstrate the method. If you do munge, make sure to watch out for casting.
Stephan
|
|
|
|
|
Lol, be both thought of "06120", this really scares me
But you need to subtract 1 from the AddDays() function, because 1/1/yy is already one day passed.
regards
modified 12-Sep-18 21:01pm.
|
|
|
|