Передаю строку из андроид приложения
public void onClickBut3(View v) {
if(myThreadConnected!=null) {
String s = "1;3;";
byte[] bytesToSend = s.getBytes();
myThreadConnected.write(bytesToSend);
}
}
на arduino принимаю так:
String content = "";
char character;
void loop() {
while(Serial.available()) {
character = Serial.read();
content.concat(character);
}
Serial.println(content);
if (content == "1;3;") {
digitalWrite(led_max, HIGH);
}
Как мне её парсить и конвертировать в int, что бы например если, буду передвать "1;1;", она стала int 1?
if(content == 1){
//...
}
Нашел такой код но он не работает:
int on_pin=6;
int speed_pin=11;
int led_max=5;
int led_min=4;
int controls_array[5];
char bluetooth_data[20];
String bluetooth_msg;
void set_cooler_speed(int on_status, int speed_status)
{
digitalWrite(on_pin,!(on_status));
if((on_status==1)&&(speed_status>0))
{
if (speed_status==1)
{
analogWrite(speed_pin,5);
digitalWrite(led_max,LOW);
digitalWrite(led_min,HIGH);
}
else
{
if (speed_status==2)
{
analogWrite(speed_pin,60);
digitalWrite(led_min,HIGH);
digitalWrite(led_max,HIGH);
}
else //max speed
{
analogWrite(speed_pin,120);
digitalWrite(led_min,LOW);
digitalWrite(led_max,HIGH);
}
}
}
}
//-----------------------------------------------------------
void data_parser()
{
char block[20];
int block_data;
int ind_data,ind_block,ind_control, ind_tmp;
ind_data=0;
ind_control=0;
while(bluetooth_data[ind_data]!='\0')
{
ind_block=0;
while(bluetooth_data[ind_data]!=';')
{
block[ind_block]=bluetooth_data[ind_data];
ind_block++;
ind_data++;
}
block[ind_block]='\0';
block_data=0;
for(ind_tmp=0;ind_tmp<ind_block;ind_tmp++)
{
block_data=block_data+(block[ind_tmp]-'0');
if (ind_tmp<ind_block-1) block_data*=10;
}
controls_array[ind_control]=block_data;
ind_control++;
ind_data++;
}
}
//-----------------------------------------------------------------
void pwm25kHzBegin() {
TCCR2A = 0; // TC2 Control Register A
TCCR2B = 0; // TC2 Control Register B
TIMSK2 = 0; // TC2 Interrupt Mask Register
TIFR2 = 0; // TC2 Interrupt Flag Register
TCCR2A |= (1 << COM2B1) | (1 << WGM21) | (1 << WGM20); // OC2B cleared/set on match when up/down counting, fast PWM
TCCR2B |= (1 << WGM22) | (1 << CS21); // prescaler 8
OCR2A = 79; // TOP overflow value (Hz)
OCR2B = 0;
}
//------------------------------------------------------------
void setup() {
pinMode(on_pin, OUTPUT);
pinMode(speed_pin, OUTPUT);
pinMode (led_max,OUTPUT);
pinMode (led_min,OUTPUT);
digitalWrite(on_pin,HIGH);
digitalWrite(led_max,LOW);
digitalWrite(led_min,LOW);
controls_array[0]=0;
controls_array[1]=0;
pwm25kHzBegin();
}
void loop() {
bluetooth_msg="1;1;";
//if(Serial.available() > 0) // есть ли что-то в буфере
//{
// bluetooth_msg += char(Serial.read());
//}
//else
//{
bluetooth_msg.toCharArray(bluetooth_data, 20);
data_parser();
bluetooth_msg="";
set_cooler_speed(controls_array[0],controls_array[1]);
//}
}
Например, так:
void loop()
{
static unsigned char leds[3] = { 13, 12, 11 };
int number = -1;
int state = -1;
while (Serial.available()) {
character = Serial.read();
if (character != ';') {
content.concat(character);
}
else if (number < 0) {
number = content.toInt();
content = "";
}
else {
state = content.toInt();
content = "";
}
}
if (number >= 0 && state >= 0 && number <= 2 && state <= 1) {
digitalWrite(leds[number], state);
number = -1;
state = -1;
}
}
Три светодиода - Digital 13, 12, 11.
Чтобы зажечь светодиод 0 (D13), нужно передать строку "0;1;".
Чтобы погасить светодиод 2 (D11), нужно передать строку "2;0;".
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите как такое можно сделать с помощью стримов? Я в них новичок, может хотябы с помощью каких метов можно сделатьБуду рад любой помощи!
Пытаюсь получить список файлов и папок GoogleDriveВ документации написано для того, чтобы получить список нужно выполнить такой запрос:
Коллеги, добрый вечер! Прошу вашей помощи в понимании ObservableListУ меня есть ObservableList, состоящий из массива Object[], каждый элемент которого имеет...
Как сделать что бы новая activity открывалась не по верх другой, а как бы в новом окне, те чтобы при нажатии на кнопку последних программ пользователь...