Week 6 Progress:
I will keep simulating sending and receiving signals from the serial port with Palm. Hopefully everything would work. If it does then I will work on the user interfaces to make it nicer. Or if our hardware comes I will start assembling the chips and hopefully do some soldering. Stay tuned for more updates. We should be moving a lot faster when our parts arrive and when midterms are over.
The parts arrived this week and Ilya has them. He is going to start laying out the pins and draw the schematics. I will then help with some of the soldering and wire wrapping. But until then I have revised my code and tested sending triggering conditions through the serial port with hyperterminal. I've used the protocol displayed in Week 5 progress report to send things through serial port. Along with this protocol, we used ACII. A table is included below.
This is what displays on hyperterminal when I send W011232. Please see protocol in week 5. W01 is command to send triggering condition. 12 is hex for channel 0 low and channel 1 high. 32 is 2 in ascii.

This is what you see in hyperterminal. If you check the ascii tables above, you'll see that it corresponds directly. Here is the code for this test.
sendbits[0]='w';
sendbits[1]=0x01;
sendbits[2]=0x12;
sendbits[3]=0x32;
sendbits[4]='\0';
SysLibFind("Serial Library",ref);
SerOpen(num,0,57600);
SerSend(num,sendbits,StrLen(sendbits),&error);
SerSendWait(num,-1);
SerClose(num);
Here is my code to parse the user inputs:
sendbits[0]='w';
sendbits[1]=0x01;
sendbits[3]=0x13;
sendbits[4]='\0';
SysLibFind("Serial Library",ref);
//Check channel 0 and 1
if (LogicMainR0Field == '1')
if (LogicMainR1Field == '1')
sendbits[2] = 0x11;
else if (LogicMainR1Field == '0')
sendbits[2] = 0x21;
else
sendbits[2] = 0x01;
else if (LogicMainR0Field == '0')
if (LogicMainR1Field == '1')
sendbits[2] = 0x12;
else if (LogicMainR1Field == '0')
sendbits[2] = 0x22;
else
sendbits[2] = 0x02;
else
if (LogicMainR1Field == '1')
sendbits[2] = 0x10;
else if (LogicMainR1Field == '0')
sendbits[2] = 0x20;
else
sendbits[2] = 0x00;
SerOpen(num,0,57600);
SerSend(num,sendbits,StrLen(sendbits),&error);
SerSendWait(num,-1);
SerClose(num);
//Check channel 2 and 3
if (LogicMainR2Field == '1')
if (LogicMainR3Field == '1')
sendbits[2] = 0x11;
else if (LogicMainR3Field == '0')
sendbits[2] = 0x21;
else
sendbits[2] = 0x01;
else if (LogicMainR2Field == '0')
if (LogicMainR3Field == '1')
sendbits[2] = 0x12;
else if (LogicMainR3Field == '0')
sendbits[2] = 0x22;
else
sendbits[2] = 0x02;
else
if (LogicMainR3Field == '1')
sendbits[2] = 0x10;
else if (LogicMainR3Field == '0')
sendbits[2] = 0x20;
else
sendbits[2] = 0x00;
SerOpen(num,0,57600);
SerSend(num,sendbits,StrLen(sendbits),&error);
SerSendWait(num,-1);
SerClose(num);
//Check channel 4 and 5
if (LogicMainR4Field == '1')
if (LogicMainR5Field == '1')
sendbits[2] = 0x11;
else if (LogicMainR5Field == '0')
sendbits[2] = 0x21;
else
sendbits[2] = 0x01;
else if (LogicMainR4Field == '0')
if (LogicMainR5Field == '1')
sendbits[2] = 0x12;
else if (LogicMainR5Field == '0')
sendbits[2] = 0x22;
else
sendbits[2] = 0x02;
else
if (LogicMainR5Field == '1')
sendbits[2] = 0x10;
else if (LogicMainR5Field == '0')
sendbits[2] = 0x20;
else
sendbits[2] = 0x00;
SerOpen(num,0,57600);
SerSend(num,sendbits,StrLen(sendbits),&error);
SerSendWait(num,-1);
SerClose(num);
//Check channel 6 and 7
if (LogicMainR6Field == '1')
if (LogicMainR7Field == '1')
sendbits[2] = 0x11;
else if (LogicMainR7Field == '0')
sendbits[2] = 0x21;
else
sendbits[2] = 0x01;
else if (LogicMainR6Field == '0')
if (LogicMainR7Field == '1')
sendbits[2] = 0x12;
else if (LogicMainR7Field == '0')
sendbits[2] = 0x22;
else
sendbits[2] = 0x02;
else
if (LogicMainR7Field == '1')
sendbits[2] = 0x10;
else if (LogicMainR7Field == '0')
sendbits[2] = 0x20;
else
sendbits[2] = 0x00;
SerOpen(num,0,57600);
SerSend(num,sendbits,StrLen(sendbits),&error);
SerSendWait(num,-1);
SerClose(num);
/*sendbits[0]='w';
sendbits[1]=0x01;
sendbits[2]=0x12;
sendbits[3]=0x32;
sendbits[4]='\0';
SysLibFind("Serial Library",ref);
SerOpen(num,0,57600);
SerSend(num,sendbits,StrLen(sendbits),&error);
SerSendWait(num,-1);
//SerSend(num,pointer,2,perr);
SerClose(num);*/
FrmGotoForm(Result1Form);
handled = true;
}
Here is a control flow diagram of the palm app.:
