I have new hardware I'm trying to test out on an older software program. On Wed, Dec 10, 2014 at 11:51 AM, <[email protected]> wrote:
> I can't mess with the CS code. > > Sent from a mobile device. > > On Dec 10, 2014, at 11:48 AM, Brian Richardson <[email protected]> > wrote: > > I think you want to change the lines like this: > if ((pressBytes[row] | 32) == 32) > > to this: > > if ((pressBytes[row] & 32) == 32) > > > > On Wed, Dec 10, 2014 at 11:45 AM, Thomas Hudson <[email protected]> > wrote: > >> Hey All, >> >> There is some code written in C-sharp. I'm wondering how to serial output >> to this program. I'm pretty close but can't figure it out. Any help? >> >> CS code: >> private Floor floor; >> >> private int rowCount { get { return 13; } } //there are 13 >> rows of buttons >> >> private int columnCount { get { return 8; } } >> >> private void DoIOCircuit() >> { >> byte headerByte = 33; // exclamation point >> byte[] headerByteArray = { 33 }; // exclamation point "!" is >> 33 in ASCI >> >> >> // read buttton presses >> int bytesExpected = rowCount + 1; >> byte[] pressBytes = new byte[bytesExpected]; >> if (serialPort.Read(pressBytes, 0, bytesExpected) != >> bytesExpected) >> { >> throw new System.IO.IOException(); >> } >> // check header byte >> if (pressBytes[0] == headerByte) // its looking for the "!" >> for the 1st byte >> { >> RaiseEventsForPressBytes(pressBytes); >> } >> >> } >> >> private void RaiseEventsForPressBytes(byte[] pressBytes) >> { >> for (int row = 0; row < rowCount; row++) >> { >> if ((pressBytes[row] | 128) == 128) //I guess this is >> looking for a 1 or a zero for each bit >> floor.RaiseTileEvents(0, row); >> if ((pressBytes[row] | 64) == 64) >> floor.RaiseTileEvents(1, row); >> if ((pressBytes[row] | 32) == 32) >> floor.RaiseTileEvents(2, row); >> if ((pressBytes[row] | 16) == 16) >> floor.RaiseTileEvents(3, row); >> if ((pressBytes[row] | 8) == 8) >> floor.RaiseTileEvents(4, row); >> if ((pressBytes[row] | 4) == 4) >> floor.RaiseTileEvents(5, row); >> if ((pressBytes[row] | 2) == 2) >> floor.RaiseTileEvents(6, row); >> if ((pressBytes[row] | 1) == 1) >> floor.RaiseTileEvents(7, row); >> } >> } >> >> >> Here's my Arduino code: >> >> void loop() { >> >> >> Serial.write(33); // "!" in ASCII >> Serial.write(1); //row 1 00000001 >> Serial.write(16); //row 2 00010000 >> Serial.write(1); // row 3 >> Serial.write(1); >> Serial.write(1); >> Serial.write(1); >> Serial.write(1); >> Serial.write(1); >> Serial.write(1); >> Serial.write(1); >> Serial.write(1); >> Serial.write(1); >> >> >> >> >> -- >> Thomas Hudson, PE >> thomashudson.org >> 1035 NE Skidmore Street >> (503) 522-9069 >> >> >> _______________________________________________ >> dorkbotpdx-blabber mailing list >> [email protected] >> http://music.columbia.edu/mailman/listinfo/dorkbotpdx-blabber >> > > _______________________________________________ > dorkbotpdx-blabber mailing list > [email protected] > http://music.columbia.edu/mailman/listinfo/dorkbotpdx-blabber > > -- Thomas Hudson, PE thomashudson.org 1035 NE Skidmore Street (503) 522-9069
_______________________________________________ dorkbotpdx-blabber mailing list [email protected] http://music.columbia.edu/mailman/listinfo/dorkbotpdx-blabber
