jjos Posted November 26, 2007 Report Share Posted November 26, 2007 Hi, I need to find out what these lines of code are doing? The purpose of the code is to get information from a machine via RS232. The string of information this prog is getting, is being manipulated but I can't figure out what hell its doing to the string? I'm not a QBasic programmer so Any help explaining these 6/7 lines would be appreciated. Thanks in advance. 'Read from inst '--------------------------------------- OPEN "COM1:9600,S,7,1,CD0,CS0,DS0,OP0,RS" FOR RANDOM AS #1 c1! = 0 c1$ = "" s1$ = "" a$ = CHR$(27) + "P": PRINT #1, a$ s1$ = "": c1$ = "" a$ = INPUT$(15, #1) CLOSE s1$ = LEFT$(a$, 1) c1$ = MID$(a$, 3, 8 ) c1! = VAL(c1$) 'inst value IF in = 2 THEN c1! = c1! * 10 IF s1$ = "-" THEN c1! = -c1! 'Convert to -ve val if -sign RETURN Quote Link to post Share on other sites
iccaros Posted November 30, 2007 Report Share Posted November 30, 2007 Line one of the "Function" is opening the rs232 FIFO and assigning its buffer the name #1 reading in random mode and not sequencal next they are creating an integer and two strings.next comes the worka$ = CHR$(27) + "P": PRINT #1, a$ this is really two lines in one see the :so we assign ascii char 27 (see http://game-editor.com/tutorials/images/ascii.jpg) followed by the P so we have a$ = "^[P" and the second half puts that string to the serial port (in basic you print to a port like you do the screen, and read from it like a keyboard)s1$ = "": c1$ = "" this is also two lines that assign blank strings to s1$ and c1$it looks like (with out the rest of the code this is just a guess) a$ = INPUT$(15, #1) is assigning the first 15 chars from the serial port to a$or INPUT$ is an Array and we are looking up a value that is at position 15 x the value on the serial portthen close does what it says , it closes the serial portthe rest is simples1$ = LEFT$(a$, 1)assign the value of the array LEFT$ at position of value of a$ x 1c1$ = MID$(a$, 3, 8 )again assign c1$ the value from an array based on the value of a$c1! = VAL(c1$) 'inst valuechange string c1$ to an integer IF in = 2 THEN c1! = c1! * 10I assume this is correct for qbasic but in other languages its IF in == 2 Then, so we evaluate the value of 'in' and if it equals 2 then we multiply 10 to c1! and assign that value back to its selfIF s1$ = "-" THEN c1! = -c1! 'Convert to -ve val if -sign check if s1$ = - and if so make c1! a negative numberhope that helps.. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.