Find Jobs
Hire Freelancers

Change a virtual null modem driver to corrupt data based on a set bit error ratio

$100-1000 USD

Cancelled
Posted almost 16 years ago

$100-1000 USD

Paid on delivery
Modify the source code from the com0com project at [login to view URL] This project currently implements a configurable virtual null modem between two COM ports. Add a feature, where a Bit Error Ratio, BER, see [login to view URL] can be configured between each installed virtual null modem. The default BER will be 0, i.e. a perfect link. The BER? can be set from the setup program in the project? as an additional option. When the BER is set, the corruption of bits will be random and statistically based on the set BER. The BER feature should be added without affecting any of the existing functionalities of com0com. This includes the its ability to run on Windows 2000, XP, Windows Server 2003, 64-bit Windows. When BER is 0 (default), ? the software should operate exactly like the original. A range of configurable BER should be supported from 0 to 1 (totally lossy), with a step of at least 0.01. Modifications should be made to the current version of com0com, v2.0.0.0. If the author of com0com releases a later version, there will not be a requirement to update the feature for the later version (although it would be very much appreciated). ## Deliverables * * *This broadcast message was sent to all bidders on Thursday Jun 5, 2008 3:37:07 PM: When you install com0com, you will see a setup program that allows the set up of virtual null modems. I want the BER feature to be included as an additional parameter. Type "help" in the setup program and you will know what I mean. I paste the help below: ------------------------------------------------- Enter 'help' to get info about usage of Setup for com0com. command> help Setup for com0com Usage: [options] Options: --output - file for output, default is console --detail-prms - show detailed parameters Commands: install - install a pair of linked ports with or identifiers CNCA and CNCB install (by default is the first not used number), set their parameters to and remove - remove a pair of linked ports with identifiers CNCA and CNCB disable all - disable all ports in current hardware profile enable all - enable all ports in current hardware profile change - set parameters for port with identifier list - for each port show its identifier and parameters preinstall - preinstall driver update - update driver uninstall - uninstall all ports and the driver quit Syntax of port parameters string: - - use driver's defaults for all parameters * - use current settings for all parameters =[,...] - set value for each parameter Parameters: PortName= - set port name to (port identifier by default) EmuBR={yes|no} - enable/disable baud rate emulation in the direction to the paired port (disabled by default) EmuOverrun={yes|no} - enable/disable buffer overrun (disabled by default) PlugInMode={yes|no} - enable/disable plug-in mode, the plug-in mode port is hidden and can't be open if the paired port is not open (disabled by default) ExclusiveMode={yes|no} - enable/disable exclusive mode, the exclusive mode port is hidden if it is open (disabled by default) cts=[!] - wire CTS pin to (rrts by default) dsr=[!] - wire DSR pin to (rdtr by default) dcd=[!] - wire DCD pin to (rdtr by default) ri=[!] - wire RI pin to (!on by default) The possible values of above can be rrts, lrts, rdtr, ldtr, rout1, lout1 (remote/local RTS/DTR/OUT1), ropen, lopen (logical ON if remote/local port is open) or on (logical ON). The exclamation sign (!) can be used to invert the value. Special values: - - use driver's default value * - use current setting Examples: install - - install 5 * * remove 0 install PortName=COM2 PortName=COM4 install PortName=COM5,EmuBR=yes,EmuOverrun=yes - change CNCA0 EmuBR=yes,EmuOverrun=yes list uninstall ------------------------------------------------- The command that I expect to type at the end of this project is probably something like the below: command> install PortName=COM2 PortName=COM3,EmuBR=yes,EmuOverrun=yes,BER=0.008 I would expect that after this, the data that is sent from COM3 to COM2 will be randomly corrupted (bit inverted) with a statistic of 8 bit errors for every 1000 bits. BER means transmit BER only. Hence data from COM2 to COM3 will be lossless as this is the default. If I want corruption both ways, I would specify as so: command> install PortName=COM2,BER=0.005 PortName=COM3,EmuBR=yes,EmuOverrun=yes,BER=0.008 You will notice that I have added other options EmuBR and EmuOverrun. This is meant to highlight that existing options must still be avialable and unaffected by your changes. Therefore, if a program sends data from COM3 at rates beyond that allowed by the baud rate which it is opened, the data will be lost due to buffer overrun as in the original implementation. This is over and above the BER that we would expect. **Also, I wish to post a small correction. The BER shall be configurable in steps of 0.001, instead of 0.01 as in the bid. It means the least lossy response will be 1 bit error for each 1000 bits.**
Project ID: 3957718

About the project

5 proposals
Remote project
Active 16 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
5 freelancers are bidding on average $594 USD for this job
User Avatar
See private message.
$85 USD in 40 days
4.4 (67 reviews)
5.2
5.2
User Avatar
See private message.
$679.15 USD in 40 days
4.9 (39 reviews)
4.8
4.8
User Avatar
See private message.
$850 USD in 40 days
5.0 (11 reviews)
3.8
3.8
User Avatar
See private message.
$425 USD in 40 days
5.0 (3 reviews)
1.5
1.5
User Avatar
See private message.
$850 USD in 40 days
0.0 (1 review)
0.0
0.0
User Avatar
See private message.
$760.75 USD in 40 days
0.0 (2 reviews)
0.0
0.0

About the client

Flag of SINGAPORE
Singapore
0.0
0
Member since Jun 3, 2008

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.