
bebebe
17.07.2017
18:18:36
покажите что выводит эта команда

Влад
17.07.2017
18:18:46
я хочу получить из каждого значения uint8_t
[vvzvlad@MBP-Zaytsev-4:~/Documents/Unwired/contiki_ud_ng/unwired/incotex]$ git describe —dirty —always —tags
v0.43-dev-93-gcec2e7f-dirty
если сделать version %s.%s, то все ок.

Google

bebebe
17.07.2017
18:20:21
хм, попробуйте их printf("version %d.%d", BIG_VERSION, LITTLE_VERSION)

Влад
17.07.2017
18:20:30
но мне надо еще и передать, а не вывести.
та же фигня, уже пробовал
./dag_node.c:1071:54: warning: format '%d' expects argument of type 'int', but argument 4 has type 'char *' [-Wformat=]

bebebe
17.07.2017
18:21:45
воот
надо привести из char к int'у

Влад
17.07.2017
18:26:41
как? (uint8_t)BIG_VERSION не работает
...
./dag_node.c:1074:39: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
(uint8_t)BIG_VERSION, (uint8_t)LITTLE_VERSION);
...
version 180.248

bebebe
17.07.2017
18:27:12
блееее
покажи весь код

Dolphin
17.07.2017
18:28:19

Влад
17.07.2017
18:30:04
BIG_GIT_VERSION := $(shell git describe —dirty —always —tags | sed -r 's/v([0-9]+)\.([0-9]+).*/\1/')
LITTLE_GIT_VERSION := $(shell git describe —dirty —always —tags | sed -r 's/v([0-9]+)\.([0-9]+).*/\2/')
DEFINES+=BIG_VERSION=\"$(BIG_GIT_VERSION)\"
DEFINES+=LITTLE_VERSION=\"$(LITTLE_GIT_VERSION)\"
printf("Node started, %s mode, %s class, version %"PRIu8".%"PRIu8"\n",
rpl_get_mode() == RPL_MODE_LEAF ? "leaf" : "no-leaf",
CLASS == CLASS_B ? "B(sleep)" : "C(non-sleep)",
(uint8_t)BIG_VERSION, (uint8_t)LITTLE_VERSION);

Dolphin
17.07.2017
18:30:44
нах тебе строку в инт преобразовывать? Выводи сразу строкой


Влад
17.07.2017
18:31:01
uint8_t length = 23;
uint8_t udp_buffer[length];
udp_buffer[0] = PROTOCOL_VERSION_V1;
udp_buffer[1] = CURRENT_DEVICE_VERSION;
udp_buffer[2] = DATA_TYPE_STATUS;
udp_buffer[3] = ( (uint8_t *)parent_addr )[8];
udp_buffer[4] = ( (uint8_t *)parent_addr )[9];
udp_buffer[5] = ( (uint8_t *)parent_addr )[10];
udp_buffer[6] = ( (uint8_t *)parent_addr )[11];
udp_buffer[7] = ( (uint8_t *)parent_addr )[12];
udp_buffer[8] = ( (uint8_t *)parent_addr )[13];
udp_buffer[9] = ( (uint8_t *)parent_addr )[14];
udp_buffer[10] = ( (uint8_t *)parent_addr )[15];
udp_buffer[11] = *uptime_uint8_t++;
udp_buffer[12] = *uptime_uint8_t++;
udp_buffer[13] = *uptime_uint8_t++;
udp_buffer[14] = *uptime_uint8_t;
udp_buffer[15] = *rssi_parent_uint8_t++;
udp_buffer[16] = *rssi_parent_uint8_t;
udp_buffer[17] = temp;
udp_buffer[18] = voltage;
udp_buffer[19] = BIG_VERSION;
udp_buffer[20] = LITTLE_VERSION;
udp_buffer[21] = DATA_RESERVED;
udp_buffer[22] = DATA_RESERVED;

Google

Dolphin
17.07.2017
18:31:43
ну тогда преобразовывай, но не так же епта

bebebe
17.07.2017
18:31:52
бле

Влад
17.07.2017
18:32:00
как?
я же новичок в си

bebebe
17.07.2017
18:32:48
сек
у тебя uint8_t жи, это ровно байт

Dolphin
17.07.2017
18:33:44
int atoi(const char* str)
stdlib

Влад
17.07.2017
18:36:16
функцией?
а на этапе компиляции не?

Dolphin
17.07.2017
18:36:55
неа

Влад
17.07.2017
18:39:17
оно же не меняется в процессе работы
а так будет храниться строка и каждый раз преобразовываться? или компилятор соптимизирует?

bebebe
17.07.2017
18:40:27
#include <stdio.h>
#include <inttypes.h>
int main(int argc, char argv) {
char major_s = 0;
char minor_s = 43;
printf("version: %d.%d\n", (uint8_t) major_s, (uint8_t) minor_s);
}
./a.out
version: 0.43

Dolphin
17.07.2017
18:40:51
оО

Name
17.07.2017
18:41:19
магия вне Хогвартса запрещена

Google

bebebe
17.07.2017
18:41:41

Dolphin
17.07.2017
18:41:58

Влад
17.07.2017
18:42:41

Dolphin
17.07.2017
18:42:45
wut?
ну блядь ты че епта у него не char, а char*

Влад
17.07.2017
18:43:31
так-то char тоже самое что и uint8

bebebe
17.07.2017
18:45:04
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char argv) {
char *major_s = "0";
char *minor_s = "43";
printf("version: %d.%d\n", strtol(major_s, '\0', 10), strtol(minor_s, '\0', 10));
}
~

Dolphin
17.07.2017
18:45:04

Влад
17.07.2017
18:45:43

Dolphin
17.07.2017
18:45:44
он хочет на вход из баша получить uint8

bebebe
17.07.2017
18:46:15
пусть получает
я разрешаю
за 3,5$

Dolphin
17.07.2017
18:46:36
в биткоинах бери :D

Влад
17.07.2017
18:46:54

Dolphin
17.07.2017
18:47:13
я не знаю как, я тебе показал способ

Влад
17.07.2017
18:47:47

Dolphin
17.07.2017
18:48:17
(uint8_t)atoi(str);

Google

Dolphin
17.07.2017
18:48:35
передашь больше байта, транкнет

LexsZero
17.07.2017
18:48:51
ты дефайнишь строчки и пытаешься юзать их как инты, ясен хуй что не работает

Влад
17.07.2017
18:49:23
DEFINES+=BIG_VERSION=$(BIG_GIT_VERSION)?

LexsZero
17.07.2017
18:49:33
угу

Dolphin
17.07.2017
18:49:56

Влад
17.07.2017
18:50:32
о, заработало

LexsZero
17.07.2017
18:50:39
так сишный компилятор видит "1" и закономерно считает что это строка

Dolphin
17.07.2017
18:51:06
ну это то правильно он жеж умный сцук )

Влад
17.07.2017
18:53:09
почему?

Dolphin
17.07.2017
18:53:27
ну потому что он складывает все в кашу )

Влад
17.07.2017
18:57:29
да вроде нет
все работвет

LexsZero
17.07.2017
18:57:59
да нет, ничего не поменялось
с точки зрения шелла, FOO=\"BAR BAZ\" и FOO=BAR BAZ - это однохуйственно два токена.
*аргумента

Dolphin
17.07.2017
18:59:39
так я поэтому и решил, что так как шеллу похуй, он и интерпретирует строкой, и передает

LexsZero
17.07.2017
19:00:31
шелл ничего не интерпретирует никогда. он бьет инпут по IFS с учетом квотинга и пихает его в argv, все.

Dolphin
17.07.2017
19:01:03
дык argv же char*

Google

LexsZero
17.07.2017
19:01:19
угу.
слештред

Влад
17.07.2017
19:02:06

Dolphin
17.07.2017
19:02:23
?

bebebe
17.07.2017
19:02:23
5$ итого

Dolphin
17.07.2017
19:02:48

bebebe
17.07.2017
19:20:39

Dolphin
17.07.2017
19:42:18

bebebe
17.07.2017
19:43:32

Dolphin
17.07.2017
19:43:48
?
Я уже давно там так-то :D
Еще и должен остался, так что это ты лучше не лезь :3

bebebe
17.07.2017
19:49:26
что такое берега, и как их попутать

LexsZero
17.07.2017
19:50:34
просить в чятах денег за помощь бесполезно
особенно постфактум
говорю как человек который этим занимается последние лет пять

bebebe
17.07.2017
19:59:15
ты говоришь как человек который воспринимает серьезно буквы и цифры которые пишут в интернетах

Alexandre
17.07.2017
20:10:08
Йо. Ну и нововведение... Если при открытом чате телеграма решительным движением поднести телефон к уху, он начинает запись аудиосообщения. И как это убрать? ?

Dolphin
17.07.2017
20:10:14

bebebe
17.07.2017
20:10:44

Dolphin
17.07.2017
20:11:29

777Andrej
17.07.2017
20:11:47