To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
Mistrzowie.org Forum Oficjalne
forum zrzeszające użytkowników serwisu mistrzowie.org

Samopomoc - C++

icywind - 2016-06-24, 20:14

Moris299 napisał/a:



a czym powinno być? może kwestia przekształcenia jakoś tego datab

KURWA A MYŚLISZ, ŻE CO ZROBIŁEM W
Kod:
std::string s = std::to_string(datab);
const char *msg = s.c_str(); ;

I CO CI TERAZ PROPONUJE? JAKIŚ POMYSŁ MORYS? :zalamka:

[ Dodano: 2016-06-24, 20:14 ]
Moris299 napisał/a:
exit status 1
cannot convert 'String' to 'const char*' in initialization

[ Dodano: 2016-06-24, 20:13 ]
xDDDDDDDDDDD

To zmień z const char*' na String jak pisałem. Musi być koniecznie const char*'?

Moris299 - 2016-06-24, 20:17

a ja nie wiem czy musi, tak było w przykładzie który działał ten cały transmitting ma strasznie zjebane biblioteki

[ Dodano: 2016-06-24, 20:18 ]
'string' was not declared in this scope

icywind - 2016-06-24, 20:19

z dużej litery

[ Dodano: 2016-06-24, 20:20 ]
jak musi być char to masz
http://lmgtfy.com/?q=arduino+int+to+char*

Moris299 - 2016-06-24, 20:27

nie mam do niej szacunku, nie bede pisal z dużej :troll:

a tak serio

invalid conversion from 'int' to 'String*' [-fpermissive]

icywind - 2016-06-24, 20:29

Masz, skompiluj to sobie i uruchom
Kod:

#define LICZBA_MORYSOW 299
int main()
{
    while(true) int *morys = new int[LICZBA_MORYSOW];
    return 0;
}


[ Dodano: 2016-06-24, 20:29 ]
Moris299 napisał/a:
String*'

USUŃ KURWA TEN WSKAŹNIK

Moris299 - 2016-06-24, 20:32

conversion from 'char' to 'String' is ambiguous

[ Dodano: 2016-06-24, 20:32 ]
xDDDDDDDDDDDDD

[ Dodano: 2016-06-24, 20:32 ]
is ambiguous KURWAA!

icywind - 2016-06-24, 20:33

dej jak masz ten kod teraz
Moris299 - 2016-06-24, 20:35

#include <VirtualWire.h>


void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");

// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
}

void loop()
{
char datab = 0;
datab = Serial.read();

if(datab != -1) {
Serial.println(datab);

String msg = datab;



digitalWrite(13, true); // Flash a light to show transmitting
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, false);
delay(200);

}
}

icywind - 2016-06-24, 20:36

Kod:
 String msg = datab;

TO PRZECIEŻMÓWIŁEM, ŻĘBY DAĆString msg = String(datab)
CZY TY MNIE W OGÓLE CZYTASZ?

[ Dodano: 2016-06-24, 20:36 ]
char datab = 0;
CZO?

[ Dodano: 2016-06-24, 20:36 ]
TO JUŻ NIE INT?

Moris299 - 2016-06-24, 20:37

ymm

[ Dodano: 2016-06-24, 20:37 ]
to wstawie int

[ Dodano: 2016-06-24, 20:38 ]
invalid cast from type 'String' to type 'uint8_t* {aka unsigned char*}'

icywind - 2016-06-24, 20:38

ja nie wiem jak to powinno być, to nie ja tą plytkę oprogamowuje. Ale wcześniej był int

[ Dodano: 2016-06-24, 20:39 ]
Moris299 napisał/a:
invalid cast from type 'String' to type 'uint8_t* {aka unsigned char*}'

Ale to pewnie już tu vw_send((uint8_t *)msg, strlen(msg)); tak?

Moris299 - 2016-06-24, 20:40

tak
icywind - 2016-06-24, 20:41

no czyli musiał być char*
xD

Moris299 - 2016-06-24, 20:42

xD
icywind - 2016-06-24, 20:42

przekonwertujmy jeszcze Stringa do char* i udajmy, że to nie jest głupie
Moris299 - 2016-06-24, 20:43

zrobiłbym w chuj ifów i zamiast "hello" bym powstawiał "1" "2" "3" itp. i żeby odbiornik mi to interpretował ale kod byłby zbyt długi i nie starczy miejsca na płytce :/
icywind - 2016-06-24, 20:45

przeczytaj sobie dokumentacje tej płytki jak zmienić inta na char* bo standardowe stringi c++ tu nie działają. i zrób tak

[ Dodano: 2016-06-24, 20:47 ]
Ale uruchom to
Kod:

#define LICZBA_MORYSOW 299
int main()
{
    while(true) int *morys = new int[LICZBA_MORYSOW];
    return 0;
}

Nic złego się nie stanie :I

Moris299 - 2016-06-24, 20:51

no faktycznie nic
widzu - 2016-06-24, 21:14

O jak parskłem z obrazka. :haha:

[ Dodano: 2016-06-24, 21:15 ]
A wracając do tematu, to jak wygląda teraz Twój kod i co w nim nie działa, bo trochę się pogubiłem?

[ Dodano: 2016-06-24, 21:15 ]
Robisz kiepską dokumentację tematu.

Moris299 - 2016-06-24, 21:55

teraz wygląda tak

Kod:
#include <VirtualWire.h>


void setup()
{
    Serial.begin(9600);      // Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000);    // Bits per sec
}

void loop()
{
   char datab =  0;
    datab = Serial.read();

    if(datab != -1) {
        Serial.println(datab);


String msg = String(datab);


    digitalWrite(13, true); // Flash a light to show transmitting
    vw_send((uint8_t *)msg, strlen(msg));
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(13, false);
    delay(200);

    }
}



i nie działa:

vw_send((uint8_t *)msg, strlen(msg));


z błędem

exit status 1
invalid cast from type 'String' to type 'uint8_t* {aka unsigned char*}'



Powered by phpBB modified by Przemo © 2003 phpBB Group