質問: this.serialport1.readexisting(); を文字列を直接代入した場合はエラーは発生しません。 これをどのようにすれば正常に動くのでしょうか。 また、ackが正常に送信できてないみたいなのも解れば助かります。 よろしくお願いします。
回答: string etx = receiveddata.substring(30, 1); この行がいけないのでは?? エラーの原因はsubstringだと思います、substringの第一パラメータの名称はstartindexですから。 ackが送られていないということなので、ackの送信前のコードに限定できます、そして怪しいのがこの1行となるわけです。 送信データが 1214112050457771111 であれば、30字に満たないので、発生しそうですね。