Собственно столкнулся с тем, что готовый код уже готов... и в процессе работы он в файл на RAM диске скидывает параметры в текстровом виде... сам же он являясь ещё и сервером для клиентов не допускает своего перезапуска... потому как клиенты в локальной сети будут не очень довольны. А потребовалось эти данные выводить и на WEB страничку. Причём данные меняются довольно быстро.... Вот это делает поток main, точнее его кусок... скидывает на RAM диск (функция вызываемая из цикла в main): Код (C++): int WrDataFile(void) { FILE * file; U16 size = 0; //нет имени файла if(ndatafile[0] == 0) return 0; file = fopen(&ndatafile[0],"wt"); if(file < 0) { printf("Open %s error!\n", &ndatafile[0]); return -1; } fprintf(file, "CntTPower1: %f\n", rdata_04_real.CntTPower1); fprintf(file, "CntTPower2: %f\n", rdata_04_real.CntTPower2); fprintf(file, "Uc1: %f\n", rdata_04_real.Uc1); fprintf(file, "Uc2: %f\n", rdata_04_real.Uc2); fprintf(file, "Iout: %f\n", rdata_04_real.Iout); fprintf(file, "Uout: %f\n", rdata_04_real.Uout); fprintf(file, "Usp: %f\n", rdata_04_real.Usp); fprintf(file, "Upp: %f\n", rdata_04_real.Upp); fprintf(file, "TimeWork: %i\n", rdata_04_real.TimeWork); fprintf(file, "TimeShieldO: %i\n", rdata_04_real.TimeShieldO); fprintf(file, "TmpSCS: %i\n", rdata_04_real.TmpSCS); fprintf(file, "ModeCTL_SCS: %i\n", rdata_04_real.ModeCTL_SCS); // fclose(file); return 0; } Бросает данные не так просто... они требуются ещё и другим процессам на этой машине. Ну за одно делаем процесс на BASH... который будет брать эти данные и и конвертировать в JSON. Причём не просто брать, а ещё искать их в файле данных (приводится только функция для конветрирования): Код (Bash): function _cvtjson() { datastr=$(cat $datafile) echo "$datastr" strjson="{\n" dstr=$(echo -e "$datastr" | awk '/CntTPower1:/ {print($2)}') strjson=$strjson"\"CntTPower1\":\"$dstr\",\n" dstr=$(echo -e "$datastr" | awk '/CntTPower2:/ {print($2)}') strjson=$strjson"\"CntTPower2\":\"$dstr\",\n" dstr=$(echo -e "$datastr" | awk '/TimeWork:/ {print($2)}') strjson=$strjson"\"TimeWork\":\"$dstr\",\n" dstr=$(echo -e "$datastr" | awk '/TimeShieldO:/ {print($2)}') strjson=$strjson"\"TimeShieldO\":\"$dstr\",\n" dstr=$(echo -e "$datastr" | awk '/Uc1:/ {print($2)}') strjson=$strjson"\"Uc1\":\"$dstr\",\n" dstr=$(echo -e "$datastr" | awk '/Uc2:/ {print($2)}') strjson=$strjson"\"Uc2\":\"$dstr\",\n" dstr=$(echo -e "$datastr" | awk '/Iout:/ {print($2)}') strjson=$strjson"\"Iout\":\"$dstr\",\n" dstr=$(echo -e "$datastr" | awk '/Uout:/ {print($2)}') strjson=$strjson"\"Uout\":\"$dstr\",\n" dstr=$(echo -e "$datastr" | awk '/Usp:/ {print($2)}') strjson=$strjson"\"Usp\":\"$dstr\",\n" dstr=$(echo -e "$datastr" | awk '/Upp:/ {print($2)}') strjson=$strjson"\"Upp\":\"$dstr\",\n" dstr=$(echo -e "$datastr" | awk '/TmpSCS:/ {print($2)}') strjson=$strjson"\"TmpSCS\":\"$dstr\",\n" dstr=$(echo -e "$datastr" | awk '/ModeCTL_SCS:/ {print($2)}') strjson=$strjson"\"ModeCTL_SCS\":\"$dstr\"" strjson=$strjson"\n}" } Рядом с этим лежит ещё и php, который читает содержимое файла сгенерированного процессом конвертирования: Код (PHP): <?php $handle = fopen("../ramdisk/scsjson", "rt"); $contents = ''; while (!feof($handle)) $contents .= fread($handle, 4096); fclose($handle); echo $contents; ?> ну а JS на веб странице уж будет вызывать этот самый PHP... и получать данные в формате JSON. Конечно надо всё делать сразу... и по возможности закладывать всё но... бывает, что приспичит, а деваться некуда. Приходится вот так... ну можно сказать делать. А ведь можно и в самом коде сделать было с самого начала.
Да! Вы верно заметили... тут всё по тупому сделано - по TELNET. Задавал этот вопрос на форуме MOXA. И Что бы не мусорить вот ссылка: https://www.moxa.ru/forum/index.php?/topic/6748-avtozapusk-ot-polzovatelia-v-ia240/ собственно тут и найдено решение... и сейчас применил в старом-новом проекте (на этом форуме только приступаю). Код (Bash): !/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # /etc/init.d/ramdisk restart # mount --bind /mnt/ram0 /home/httpd/ramdisk # su www-data -c /home/httpd/bash/wwstart & # exit 0 А по поводу JSON выше примеры вырваны из рабочего. Кстати тот самый PHP читается WEB-страницей из браузера. Что рабочие файлы надо?