EdmundOpt High Speed filter wheel is working!!!

This commit is contained in:
eddyem 2016-05-14 16:54:12 +03:00
parent 1360054a53
commit 130ea672c3
9 changed files with 319 additions and 162 deletions

View File

@ -76,6 +76,7 @@ target_link_libraries(${PROJ} ${${PROJ}_LIBRARIES} ${USB_LIBRARIES})
# Installation of the program # Installation of the program
INSTALL(FILES ${MO_FILE} DESTINATION "share/locale/ru/LC_MESSAGES") INSTALL(FILES ${MO_FILE} DESTINATION "share/locale/ru/LC_MESSAGES")
INSTALL(FILES "99-edmund_hsfw.rules" DESTINATION "/etc/udev/rules.d")
INSTALL(TARGETS ${PROJ} DESTINATION "bin") INSTALL(TARGETS ${PROJ} DESTINATION "bin")
###### gettext ###### ###### gettext ######

View File

@ -39,6 +39,7 @@ glob_pars G;
int listNms = 0 // list names int listNms = 0 // list names
,gohome = 0 // first go home ,gohome = 0 // first go home
,reName = 0 // rename wheels/positions ,reName = 0 // rename wheels/positions
,showpos = 0 // show current position (if none args)
; ;
@ -47,6 +48,7 @@ int listNms = 0 // list names
glob_pars const Gdefault = { glob_pars const Gdefault = {
NULL // wheelID NULL // wheelID
,NULL // wheelName ,NULL // wheelName
,NULL // serial
,0 // filterPos ( 0 - get current position) ,0 // filterPos ( 0 - get current position)
,NULL // filterName ,NULL // filterName
,NULL // filterId ,NULL // filterId
@ -63,6 +65,8 @@ myoption cmdlnopts[] = {
{"wheel-id",NEED_ARG, NULL, 'W', arg_string, APTR(&G.wheelID), N_("letter wheel identificator")}, {"wheel-id",NEED_ARG, NULL, 'W', arg_string, APTR(&G.wheelID), N_("letter wheel identificator")},
/// "ÎÁÚ×ÁÎÉÅ ËÏÌÅÓÁ" /// "ÎÁÚ×ÁÎÉÅ ËÏÌÅÓÁ"
{"wheel-name",NEED_ARG, NULL, 'N', arg_string, APTR(&G.wheelName), N_("wheel name")}, {"wheel-name",NEED_ARG, NULL, 'N', arg_string, APTR(&G.wheelName), N_("wheel name")},
/// "ÓÅÒÉÊÎÙÊ ÎÏÍÅÒ ÔÕÒÅÌÉ (Ó ÎÁÞÁÌØÎÙÍÉ ÎÕÌÑÍÉ)"
{"serial", NEED_ARG, NULL, 's', arg_string, APTR(&G.serial), N_("turret serial (with leading zeros)")},
/// "ÎÏÍÅÒ ÐÏÚÉÃÉÉ ÆÉÌØÔÒÁ" /// "ÎÏÍÅÒ ÐÏÚÉÃÉÉ ÆÉÌØÔÒÁ"
{"f-position",NEED_ARG, NULL, 'p', arg_int, APTR(&G.filterPos), N_("filter position number")}, {"f-position",NEED_ARG, NULL, 'p', arg_int, APTR(&G.filterPos), N_("filter position number")},
/// "ÎÁÚ×ÁÎÉÅ ÆÉÌØÔÒÁ" /// "ÎÁÚ×ÁÎÉÅ ÆÉÌØÔÒÁ"
@ -125,10 +129,7 @@ glob_pars *parse_args(int argc, char **argv){
} }
} }
if(argc == oldargc){ // no parameters given or given only wrong parameters if(argc == oldargc){ // no parameters given or given only wrong parameters
listNms = LIST_PRES; showpos = 1;
/// "îÅ ÐÅÒÅÄÁÎÏ ÎÉËÁËÉÈ ÁÒÇÕÍÅÎÔÏ×, ×Ù×ÏÖÕ ÓÐÉÓÏË ÐÏÄËÌÀÞÅÎÎÙÈ ÕÓÔÒÏÊÓÔ×!"
WARNX(_("No arguments given, list all devices connected!"));
return &G;
} }
return &G; return &G;
} }

View File

@ -31,6 +31,7 @@
typedef struct{ typedef struct{
char *wheelID; // ID of wheel to work with char *wheelID; // ID of wheel to work with
char *wheelName; // and/or its name char *wheelName; // and/or its name
char *serial; // turret's serial (string description)
int filterPos; // position of filter int filterPos; // position of filter
char *filterName; // and/or its name char *filterName; // and/or its name
char *filterId; // or full ID like "A2" char *filterId; // or full ID like "A2"
@ -42,7 +43,7 @@ typedef struct{
// default & global parameters // default & global parameters
extern glob_pars const Gdefault; extern glob_pars const Gdefault;
extern int listNms, gohome, reName; extern int listNms, gohome, reName, showpos;
extern glob_pars G; extern glob_pars G;

View File

@ -83,12 +83,11 @@ void check_args(){
set_cur_wheel(i); set_cur_wheel(i);
} }
} }
if(G.wheelName){ // find wheel by name given if(!reName && G.wheelName){ // find wheel by name given
if(G.wheelID){ if(G.wheelID){
/// "úÁÄÁÎÙ É ÉÄÅÎÔÉÆÉËÁÔÏÒ, É ÉÍÑ ËÏÌÅÓÁ; ÐÏÐÒÏÂÕÊÔÅ ÞÔÏ-ÔÏ ÏÄÎÏ!" /// "úÁÄÁÎÙ É ÉÄÅÎÔÉÆÉËÁÔÏÒ, É ÉÍÑ ËÏÌÅÓÁ; ÐÏÐÒÏÂÕÊÔÅ ÞÔÏ-ÔÏ ÏÄÎÏ!"
ERRX(_("You give both wheel ID and wheel name, try something one!")); ERRX(_("You give both wheel ID and wheel name, try something one!"));
} }
wheel_fd = -1;
for(i = 0; i < HW_found; ++i){ for(i = 0; i < HW_found; ++i){
if(strcmp(wheels[i].name, G.wheelName) == 0){ if(strcmp(wheels[i].name, G.wheelName) == 0){
set_cur_wheel(i); set_cur_wheel(i);
@ -96,18 +95,37 @@ void check_args(){
} }
} }
} }
char oldid = wheel_id;
void setWid(){
if(oldid > 0) wheel_id = oldid;
if(!G.wheelID){
G.wheelID = calloc(2, 1);
*G.wheelID = wheel_id;
}
}
// if there's only one turret, fill wheel_id // if there's only one turret, fill wheel_id
if(wheel_id < 0 && HW_found == 1) if(HW_found == 1 && (wheel_id < 0 || (wheel_fd < 0 && reName))){
set_cur_wheel(0); set_cur_wheel(0);
if(reName) setWid();
}else if(G.serial){ /// HW given by its serial
for(i = 0; i < HW_found; ++i){
if(strcmp(wheels[i].serial, G.serial) == 0){
set_cur_wheel(i);
if(reName) setWid();
break;
}
}
}
if(wheel_fd < 0 || !wheel_chosen){ if(wheel_fd < 0 || !wheel_chosen){
/// "úÁÄÁÎÎÏÅ ËÏÌÅÓÏ ÎÅ ÏÂÎÁÒÕÖÅÎÏ!" /// "úÁÄÁÎÎÏÅ ËÏÌÅÓÏ ÎÅ ÏÂÎÁÒÕÖÅÎÏ!"
ERRX(_("Given wheel not found!")); ERRX(_("Given wheel not found!"));
} }
if(gohome) return; if(showpos || gohome) return;
if(G.filterId){ // filter given by its id like "B3" if(G.filterId){ // filter given by its id like "B3"
char *fid = G.filterId; char *fid = G.filterId;
/// "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ ÓÏÓÔÏÉÔ ÉÚ ÂÕË×Ù (ËÏÌÅÓÏ) É ÃÉÆÒÙ (ÐÏÚÉÃÉÑ)" /// "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ ÓÏÓÔÏÉÔ ÉÚ ÂÕË×Ù (ËÏÌÅÓÏ) É ÃÉÆÒÙ (ÐÏÚÉÃÉÑ)"
if(strlen(G.filterId) != 2 || fid[1] > '9' || fid[1] < '0') if(strlen(G.filterId) != 2 || fid[1] > '9' || fid[1] < '0')
/// "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ - ÂÕË×Á (ËÏÌÅÓÏ) É ÞÉÓÌÏ (ÐÏÚÉÃÉÑ)"
ERRX(_("Filter ID is letter (wheel) and number (position)")); ERRX(_("Filter ID is letter (wheel) and number (position)"));
filter_pos = fid[1] - '0'; filter_pos = fid[1] - '0';
}else if(G.filterPos){ // filter given by numerical position }else if(G.filterPos){ // filter given by numerical position
@ -125,6 +143,7 @@ void check_args(){
ERRX(_("Filter %s not found!"), G.filterName); ERRX(_("Filter %s not found!"), G.filterName);
} }
}else{ }else{
if(reName) return;
/// "îÅ ÚÁÄÁÎÏ ÎÉËÁËÏÇÏ ÄÅÊÓÔ×ÉÑ" /// "îÅ ÚÁÄÁÎÏ ÎÉËÁËÏÇÏ ÄÅÊÓÔ×ÉÑ"
ERRX("No action given"); ERRX("No action given");
} }
@ -216,6 +235,8 @@ void check_and_clear_err(int fd){
/** /**
* poll status register until moving stops * poll status register until moving stops
* @param fd - turret file descriptor
* @param msg - ==1 to show message
* @return current position * @return current position
*/ */
int poll_regstatus(int fd, int msg){ int poll_regstatus(int fd, int msg){
@ -274,7 +295,7 @@ char *get_filter_name(wheel_descr *wheel, int pos){
* list properties of wheels & fill remain fields of struct wheel_descr * list properties of wheels & fill remain fields of struct wheel_descr
*/ */
void list_props(_U_ int verblevl, wheel_descr *wheel){ void list_props(_U_ int verblevl, wheel_descr *wheel){
uint8_t buf[REG_NAME_LEN]; uint8_t buf[REG_NAME_LEN+1];
int fd = wheel->fd; int fd = wheel->fd;
if(fd < 0){ if(fd < 0){
/// "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÕÓÔÒÏÊÓÔ×Ï" /// "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÕÓÔÒÏÊÓÔ×Ï"
@ -311,16 +332,22 @@ void list_props(_U_ int verblevl, wheel_descr *wheel){
strncpy(wheel->name, nm, 9); strncpy(wheel->name, nm, 9);
if(verblevl) printf(", name '%s'", wheel->name); if(verblevl) printf(", name '%s'", wheel->name);
} }
if(verblevl) printf("\n\tFilters:\n"); if(wheel->serial && verblevl){
printf(", serial '%s'", wheel->serial);
}
if(verblevl) printf(", %d filters:\n", wheel->maxpos);
else return; else return;
int i, m = wheel->maxpos + 1; int i, m = wheel->maxpos + 1;
// now get filter names // now get filter names
for(i = 1; i < m; ++i){ for(i = 1; i < m; ++i){
nm = get_filter_name(wheel, i); nm = get_filter_name(wheel, i);
printf("\t\tPOS %d", i); printf("\t%d", i);
if(nm) printf(" -- '%s'", nm); if(nm) printf(": '%s'", nm);
printf("\n"); printf("\n");
} }
if(verblevl){
printf("current position: %d\n", poll_regstatus(wheel->fd, 0));
}
} }
if(verblevl != LIST_ALL) return; if(verblevl != LIST_ALL) return;
// now list all things stored in memory of turret driver // now list all things stored in memory of turret driver
@ -330,12 +357,13 @@ void list_props(_U_ int verblevl, wheel_descr *wheel){
wheel_descr wl; wheel_descr wl;
wl.fd = fd; wl.fd = fd;
wl.maxpos = ABS_MAX_POS; wl.maxpos = ABS_MAX_POS;
if(wheel->serial) printf("Turret with serial '%s'\n", wheel->serial);
for(w = 'A'; w < 'I'; ++w){ for(w = 'A'; w < 'I'; ++w){
char *nm = getwname(w); char *nm = getwname(w);
int f; int f;
printf("Wheel ID '%c'", w); printf("Wheel ID '%c'", w);
if(nm) printf(" with name '%s'", nm); if(nm) printf(", name '%s'", nm);
printf("; filters:\n"); printf(", filters:\n");
wl.ID = w; wl.ID = w;
for(f = 1; f <= ABS_MAX_POS; ++f){ for(f = 1; f <= ABS_MAX_POS; ++f){
nm = get_filter_name(&wl, f); nm = get_filter_name(&wl, f);
@ -347,7 +375,7 @@ void list_props(_U_ int verblevl, wheel_descr *wheel){
readreg(fd, buf, REG_NAME, REG_NAME_LEN); readreg(fd, buf, REG_NAME, REG_NAME_LEN);
break; break;
} }
printf("\tPOS %d -- '%s'\n", f, nm); printf("\t%d: '%s'\n", f, nm);
} }
} }
} }
@ -377,9 +405,62 @@ void list_hw(int show){
} }
} }
/**
* Rename wheels or filters
*/
void rename_hw(){ void rename_hw(){
FNAME(); FNAME();
check_and_clear_err(wheel_fd); check_and_clear_err(wheel_fd);
char *newname = NULL;
size_t L = 0;
uint8_t buf[REG_NAME_LEN];
void checknm(char *nm){
newname = nm;
/// "îÁÚ×ÁÎÉÅ ÎÅ ÄÏÌÖÎÏ ÐÒÅ×ÙÛÁÔØ ×ÏÓØÍÉ ÓÉÍ×ÏÌÏ×"
if((L = strlen(nm)) > 8) ERRX(_("Name should be not longer than 8 symbols"));
}
memset(buf, 0, sizeof(buf));
uint8_t cmd = 0;
// now check what user wants to rename
if(G.filterName && (G.filterId || G.filterPos)){ // user wants to rename filter
checknm(G.filterName);
DBG("Rename filter %d to %s", filter_pos, newname);
cmd = RENAME_FILTER;
}else if(G.wheelName && (G.wheelID || G.filterId)){ // rename wheel
checknm(G.wheelName);
DBG("Rename wheel '%c' to %s", wheel_id, newname);
cmd = RENAME_WHEEL;
}
if(!cmd){
/// "þÔÏÂÙ ÐÅÒÅÉÍÅÎÏ×ÁÔØ, ÎÅÏÂÈÏÄÉÍÏ ÕËÁÚÁÔØ ÎÏ×ÏÅ ÎÁÚ×ÁÎÉÅ ÆÉÌØÔÒÁ/ËÏÌÅÓÁ É ÅÇÏ ÐÏÚÉÃÉÀ/ÉÄÅÎÔÉÆÉËÁÔÏÒ!"
ERRX(_("You should give new filter/wheel name and its POS/ID to rename!"));
}
int i, stat = 1;
for(i = 0; i < 10 && stat; ++i){
buf[0] = REG_NAME;
buf[1] = cmd;
buf[2] = wheel_id;
if(cmd == RENAME_FILTER) buf[3] = filter_pos;
memcpy(&buf[4], newname, L);
if((stat = writereg(wheel_fd, buf, REG_NAME_LEN))) continue;
if((stat = readreg(wheel_fd, buf, REG_NAME, REG_NAME_LEN))) continue;
if(buf[2]){ // err not empty
DBG("ER: %d", buf[2]);
check_and_clear_err(wheel_fd);
stat = 1; continue;
}
if(memcmp(&buf[6], newname, L)){
DBG("Names not match!");
stat = 1;
continue;
}
break;
}
/// "îÅ ÕÄÁÌÏÓØ ÐÅÒÅÉÍÅÎÏ×ÁÔØ"
if(i == 10) ERRX(_("Can't rename"));
/// "ðÅÒÅÉÍÅÎÏ×ÁÎÏ ÕÄÁÞÎÏ!"
green(_("Succesfully renamed!\n"));
} }
/** /**
@ -446,6 +527,9 @@ void move_wheel(){
void process_args(){ void process_args(){
FNAME(); FNAME();
if(wheel_id < 0) return; if(wheel_id < 0) return;
if(showpos){
printf("%d\n", poll_regstatus(wheel_fd, 0));
}
if(gohome){ if(gohome){
go_home(wheel_fd); go_home(wheel_fd);
return; return;

View File

@ -48,5 +48,4 @@ enum name_cmd{
void check_args(); void check_args();
void process_args(); void process_args();
#endif // __HSFW_H__ #endif // __HSFW_H__

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-13 20:47+0300\n" "POT-Creation-Date: 2016-05-14 16:45+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -46,42 +46,51 @@ msgstr ""
msgid "Wrong argument \"%s\" of parameter \"%s\"" msgid "Wrong argument \"%s\" of parameter \"%s\""
msgstr "" msgstr ""
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:173 #. / "îÅ ÚÁÄÁÎÏ ÉÍÑ ÆÁÊÌÁ!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:174
msgid "No filename given!" msgid "No filename given!"
msgstr "" msgstr ""
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:175 #. / "îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s ÄÌÑ ÞÔÅÎÉÑ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:177
#, c-format #, c-format
msgid "Can't open %s for reading" msgid "Can't open %s for reading"
msgstr "" msgstr ""
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:177 #. / "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ stat %s"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:180
#, c-format #, c-format
msgid "Can't stat %s" msgid "Can't stat %s"
msgstr "" msgstr ""
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:180 #. / "ïÛÉÂËÁ mmap"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:184
msgid "Mmap error for input" msgid "Mmap error for input"
msgstr "" msgstr ""
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:181 #. / "îÅ ÍÏÇÕ ÚÁËÒÙÔØ mmap'ÎÕÔÙÊ ÆÁÊÌ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:186
msgid "Can't close mmap'ed file" msgid "Can't close mmap'ed file"
msgstr "" msgstr ""
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:190 #. / "îÅ ÍÏÇÕ munmap"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:196
msgid "Can't munmap" msgid "Can't munmap"
msgstr "" msgstr ""
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:214 #. / "îÅ ÍÏÇÕ ÎÁÓÔÒÏÉÔØ ËÏÎÓÏÌØ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:221
msgid "Can't setup console" msgid "Can't setup console"
msgstr "" msgstr ""
#. Get settings #. Get settings
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:283 #. / "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÎÁÓÔÒÏÊËÉ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:291
msgid "Can't get settings" msgid "Can't get settings"
msgstr "" msgstr ""
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:293 #. / "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÁÓÔÒÏÊËÉ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:302
msgid "Can't set settings" msgid "Can't set settings"
msgstr "" msgstr ""
@ -92,70 +101,70 @@ msgid "Can't open %s"
msgstr "" msgstr ""
#. / "ÏÔÏÂÒÁÚÉÔØ ÜÔÕ ÓÐÒÁ×ËÕ" #. / "ÏÔÏÂÒÁÚÉÔØ ÜÔÕ ÓÐÒÁ×ËÕ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:61 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:63
msgid "show this help" msgid "show this help"
msgstr "" msgstr ""
#. / "ÂÕË×ÅÎÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ" #. / "ÂÕË×ÅÎÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:63 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:65
msgid "letter wheel identificator" msgid "letter wheel identificator"
msgstr "" msgstr ""
#. / "ÎÁÚ×ÁÎÉÅ ËÏÌÅÓÁ" #. / "ÎÁÚ×ÁÎÉÅ ËÏÌÅÓÁ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:65 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:67
msgid "wheel name" msgid "wheel name"
msgstr "" msgstr ""
#. / "ÓÅÒÉÊÎÙÊ ÎÏÍÅÒ ÔÕÒÅÌÉ (Ó ÎÁÞÁÌØÎÙÍÉ ÎÕÌÑÍÉ)"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:69
msgid "turret serial (with leading zeros)"
msgstr ""
#. / "ÎÏÍÅÒ ÐÏÚÉÃÉÉ ÆÉÌØÔÒÁ" #. / "ÎÏÍÅÒ ÐÏÚÉÃÉÉ ÆÉÌØÔÒÁ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:67 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:71
msgid "filter position number" msgid "filter position number"
msgstr "" msgstr ""
#. / "ÎÁÚ×ÁÎÉÅ ÆÉÌØÔÒÁ" #. / "ÎÁÚ×ÁÎÉÅ ÆÉÌØÔÒÁ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:69 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:73
msgid "filter name" msgid "filter name"
msgstr "" msgstr ""
#. / "ÉÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ, ÎÁÐÒÉÍÅÒ, \"A3\"" #. / "ÉÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ, ÎÁÐÒÉÍÅÒ, \"A3\""
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:71 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:75
msgid "filter identificator like \"A3\"" msgid "filter identificator like \"A3\""
msgstr "" msgstr ""
#. / "ÓÐÉÓÏË ×ÓÅÈ ÓÏÈÒÁÎÅÎÎÙÈ ÉÍÅÎ" #. / "ÓÐÉÓÏË ×ÓÅÈ ÓÏÈÒÁÎÅÎÎÙÈ ÉÍÅÎ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:73 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:77
msgid "list all stored names" msgid "list all stored names"
msgstr "" msgstr ""
#. / "ÓÐÉÓÏË ÉÍÅÎ ÔÏÌØËÏ ÐÒÉÓÕÔÓÔ×ÕÀÝÉÈ ÕÓÔÒÏÊÓÔ×" #. / "ÓÐÉÓÏË ÉÍÅÎ ÔÏÌØËÏ ÐÒÉÓÕÔÓÔ×ÕÀÝÉÈ ÕÓÔÒÏÊÓÔ×"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:75 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:79
msgid "list only present devices' names" msgid "list only present devices' names"
msgstr "" msgstr ""
#. / "ÐÅÒÅÍÅÓÔÉÔØÓÑ × ÓÔÁÒÔÏ×ÕÀ ÐÏÚÉÃÉÀ" #. / "ÐÅÒÅÍÅÓÔÉÔØÓÑ × ÓÔÁÒÔÏ×ÕÀ ÐÏÚÉÃÉÀ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:77 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:81
msgid "move to home position" msgid "move to home position"
msgstr "" msgstr ""
#. / "ÐÅÒÅÉÍÅÎÏ×ÁÔØ ÓÏÈÒÁÎÅÎÎÙÅ ÉÍÅÎÁ ËÏÌÅÓ/ÆÉÌØÔÒÏ×" #. / "ÐÅÒÅÉÍÅÎÏ×ÁÔØ ÓÏÈÒÁÎÅÎÎÙÅ ÉÍÅÎÁ ËÏÌÅÓ/ÆÉÌØÔÒÏ×"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:79 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:83
msgid "rename stored wheels/filters names" msgid "rename stored wheels/filters names"
msgstr "" msgstr ""
#. / "îÅÐÒÁ×ÉÌØÎÙÊ ÆÏÒÍÁÔ ÞÉÓÌÁ double!" #. / "îÅÐÒÁ×ÉÌØÎÙÊ ÆÏÒÍÁÔ ÞÉÓÌÁ double!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:97 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:101
msgid "Wrong double number format!" msgid "Wrong double number format!"
msgstr "" msgstr ""
#. / "éÇÎÏÒÉÒÕÀÔÓÑ ÐÁÒÁÍÅÔÒÙ: " #. / "éÇÎÏÒÉÒÕÀÔÓÑ ÐÁÒÁÍÅÔÒÙ: "
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:122 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:126
msgid "Ignore parameters:" msgid "Ignore parameters:"
msgstr "" msgstr ""
#. / "îÅ ÐÅÒÅÄÁÎÏ ÎÉËÁËÉÈ ÁÒÇÕÍÅÎÔÏ×, ×Ù×ÏÖÕ ÓÐÉÓÏË ÐÏÄËÌÀÞÅÎÎÙÈ ÕÓÔÒÏÊÓÔ×!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:130
msgid "No arguments given, list all devices connected!"
msgstr ""
#. / "éÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ ÄÏÌÖÅÎ ÂÙÔØ ÂÕË×ÏÊ ÏÔ \"A\" ÄÏ \"H\"!" #. / "éÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ ÄÏÌÖÅÎ ÂÙÔØ ÂÕË×ÏÊ ÏÔ \"A\" ÄÏ \"H\"!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:77 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:77
msgid "Wheel ID should be a letter from \"A\" to \"H\"!" msgid "Wheel ID should be a letter from \"A\" to \"H\"!"
@ -167,99 +176,120 @@ msgid "You give both wheel ID and wheel name, try something one!"
msgstr "" msgstr ""
#. / "úÁÄÁÎÎÏÅ ËÏÌÅÓÏ ÎÅ ÏÂÎÁÒÕÖÅÎÏ!" #. / "úÁÄÁÎÎÏÅ ËÏÌÅÓÏ ÎÅ ÏÂÎÁÒÕÖÅÎÏ!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:104 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:121
msgid "Given wheel not found!" msgid "Given wheel not found!"
msgstr "" msgstr ""
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:111 #. / "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ - ÂÕË×Á (ËÏÌÅÓÏ) É ÞÉÓÌÏ (ÐÏÚÉÃÉÑ)"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:129
msgid "Filter ID is letter (wheel) and number (position)" msgid "Filter ID is letter (wheel) and number (position)"
msgstr "" msgstr ""
#. / "æÉÌØÔÒ %s ÎÅ ÏÂÎÁÒÕÖÅÎ" #. / "æÉÌØÔÒ %s ÎÅ ÏÂÎÁÒÕÖÅÎ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:125 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:143
#, c-format #, c-format
msgid "Filter %s not found!" msgid "Filter %s not found!"
msgstr "" msgstr ""
#. / "ðÏÚÉÃÉÑ ÆÉÌØÔÒÁ ÄÏÌÖÎÁ ÂÙÔØ ÞÉÓÌÏÍ ÏÔ 1 ÄÏ %d!" #. / "ðÏÚÉÃÉÑ ÆÉÌØÔÒÁ ÄÏÌÖÎÁ ÂÙÔØ ÞÉÓÌÏÍ ÏÔ 1 ÄÏ %d!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:133 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:152
#, c-format #, c-format
msgid "Filter position should be a number from 1 to %d!" msgid "Filter position should be a number from 1 to %d!"
msgstr "" msgstr ""
#. / "ïÛÉÂËÁ ÏÔÐÒÁ×ËÉ ÄÁÎÎÙÈ" #. / "ïÛÉÂËÁ ÏÔÐÒÁ×ËÉ ÄÁÎÎÙÈ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:153 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:172
msgid "Error sending data" msgid "Error sending data"
msgstr "" msgstr ""
#. / "ïÛÉÂËÁ ÞÔÅÎÉÑ ÄÁÎÎÙÈ" #. / "ïÛÉÂËÁ ÞÔÅÎÉÑ ÄÁÎÎÙÈ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:168 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:187
msgid "Error reading data" msgid "Error reading data"
msgstr "" msgstr ""
#. / "ïÛÉÂËÁ, ËÏÌÉÞÅÓÔ×Ï ÐÏÐÙÔÏË ÉÓÔÅËÌÏ" #. / "ïÛÉÂËÁ, ËÏÌÉÞÅÓÔ×Ï ÐÏÐÙÔÏË ÉÓÔÅËÌÏ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:192 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:211
msgid "Error, tries amount exceed" msgid "Error, tries amount exceed"
msgstr "" msgstr ""
#. / "ôÕÒÅÌØ ÎÅ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ, Ä×ÉÖÅÎÉÅ × \"ÄÏÍ\"" #. / "ôÕÒÅÌØ ÎÅ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ, Ä×ÉÖÅÎÉÅ × \"ÄÏÍ\""
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:210 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:229
msgid "Turret isn't initialized, move home..." msgid "Turret isn't initialized, move home..."
msgstr "" msgstr ""
#. / "ïÖÉÄÁÎÉÅ ÏËÏÎÞÁÎÉÑ Ä×ÉÖÅÎÉÑ" #. / "ïÖÉÄÁÎÉÅ ÏËÏÎÞÁÎÉÑ Ä×ÉÖÅÎÉÑ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:225 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:246
#, c-format #, c-format
msgid "Wait for end of moving " msgid "Wait for end of moving "
msgstr "" msgstr ""
#. / "ðÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ, ÐÏ×ÔÏÒÉÔÅ ÚÁÐÕÓË" #. / "ðÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ, ÐÏ×ÔÏÒÉÔÅ ÚÁÐÕÓË"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:234 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:255
msgid "Error ocured, repeat again" msgid "Error ocured, repeat again"
msgstr "" msgstr ""
#. / "úÁÄÁÎÎÁÑ ÐÏÚÉÃÉÑ ×ÎÅ ÄÉÁÐÁÚÏÎÁ 1..%d" #. / "úÁÄÁÎÎÁÑ ÐÏÚÉÃÉÑ ×ÎÅ ÄÉÁÐÁÚÏÎÁ 1..%d"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:254 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:275
#, c-format #, c-format
msgid "Given position out of range 1..%d" msgid "Given position out of range 1..%d"
msgstr "" msgstr ""
#. / "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÕÓÔÒÏÊÓÔ×Ï" #. / "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÕÓÔÒÏÊÓÔ×Ï"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:281 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:302
msgid "Can't open device" msgid "Can't open device"
msgstr "" msgstr ""
#. / "\nó×ÏÊÓÔ×Á ÐÏÄËÌÀÞÅÎÎÏÇÏ ËÏÌÅÓÁ\n" #. / "\nó×ÏÊÓÔ×Á ÐÏÄËÌÀÞÅÎÎÏÇÏ ËÏÌÅÓÁ\n"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:307 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:328
msgid "" msgid ""
"\n" "\n"
"Connected wheel properties\n" "Connected wheel properties\n"
msgstr "" msgstr ""
#. / "\n÷ÓÅ ÚÁÐÉÓÉ EEPROM\n" #. / "\n÷ÓÅ ÚÁÐÉÓÉ EEPROM\n"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:329 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:356
msgid "" msgid ""
"\n" "\n"
"All records from EEPROM\n" "All records from EEPROM\n"
msgstr "" msgstr ""
#. / "ôÕÒÅÌÉ ÎÅ ÏÂÎÁÒÕÖÅÎÙ" #. / "ôÕÒÅÌÉ ÎÅ ÏÂÎÁÒÕÖÅÎÙ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:366 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:394
msgid "No turrets found" msgid "No turrets found"
msgstr "" msgstr ""
#. / "ïÂÎÁÒÕÖÅÎÏ %d ÔÕÒÅÌÅÊ, ÎÏ ÎÉ Ë ÏÄÎÏÊ ÎÅÔ ÐÒÁ× ÄÏÓÔÕÐÁ" #. / "ïÂÎÁÒÕÖÅÎÏ %d ÔÕÒÅÌÅÊ, ÎÏ ÎÉ Ë ÏÄÎÏÊ ÎÅÔ ÐÒÁ× ÄÏÓÔÕÐÁ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:372 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:400
#, c-format #, c-format
msgid "Found %d turrets but have no access rights to any" msgid "Found %d turrets but have no access rights to any"
msgstr "" msgstr ""
#. / "îÁÚ×ÁÎÉÅ ÎÅ ÄÏÌÖÎÏ ÐÒÅ×ÙÛÁÔØ ×ÏÓØÍÉ ÓÉÍ×ÏÌÏ×"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:420
msgid "Name should be not longer than 8 symbols"
msgstr ""
#. / "þÔÏÂÙ ÐÅÒÅÉÍÅÎÏ×ÁÔØ, ÎÅÏÂÈÏÄÉÍÏ ÕËÁÚÁÔØ ÎÏ×ÏÅ ÎÁÚ×ÁÎÉÅ ÆÉÌØÔÒÁ/ËÏÌÅÓÁ É ÅÇÏ ÐÏÚÉÃÉÀ/ÉÄÅÎÔÉÆÉËÁÔÏÒ!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:436
msgid "You should give new filter/wheel name and its POS/ID to rename!"
msgstr ""
#. / "îÅ ÕÄÁÌÏÓØ ÐÅÒÅÉÍÅÎÏ×ÁÔØ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:461
msgid "Can't rename"
msgstr ""
#. / "ðÅÒÅÉÍÅÎÏ×ÁÎÏ ÕÄÁÞÎÏ!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:463
msgid "Succesfully renamed!\n"
msgstr ""
#. / "úÁÃÉËÌÉ×ÁÎÉÅ, ÐÏÐÒÏÂÕÊÔÅ ÅÝÅ ÒÁÚ" #. / "úÁÃÉËÌÉ×ÁÎÉÅ, ÐÏÐÒÏÂÕÊÔÅ ÅÝÅ ÒÁÚ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:391 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:472
msgid "Cycling detected, try again" msgid "Cycling detected, try again"
msgstr "" msgstr ""
#. / "õÖÅ × ÚÁÄÁÎÎÏÊ ÐÏÚÉÃÉÉ" #. / "õÖÅ × ÚÁÄÁÎÎÏÊ ÐÏÚÉÃÉÉ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:420 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:501
msgid "Already at position" msgid "Already at position"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@
msgid "" msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n" msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-13 20:47+0300\n" "POT-Creation-Date: 2016-05-14 16:45+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,246 +17,278 @@ msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. / "\n÷ÓÅ ÚÁÐÉÓÉ EEPROM\n" #. / "\n÷ÓÅ ÚÁÐÉÓÉ EEPROM\n"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:329 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:356
msgid "\n" msgid "\n"
"All records from EEPROM\n" "All records from EEPROM\n"
msgstr "" msgstr "\n"
"Все записи EEPROM\n"
#. / "\nó×ÏÊÓÔ×Á ÐÏÄËÌÀÞÅÎÎÏÇÏ ËÏÌÅÓÁ\n" #. / "\nó×ÏÊÓÔ×Á ÐÏÄËÌÀÞÅÎÎÏÇÏ ËÏÌÅÓÁ\n"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:307 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:328
msgid "\n" msgid "\n"
"Connected wheel properties\n" "Connected wheel properties\n"
msgstr "" msgstr "\n"
"Свойства подключенного колеса\n"
#. / "%s: ÎÅÏÂÈÏÄÉÍ ÁÒÇÕÍÅÎÔ!" #. / "%s: ÎÅÏÂÈÏÄÉÍ ÁÒÇÕÍÅÎÔ!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/parseargs.c:485 #: /Big/Data/SAO/edmund_opt/HSFW_management/parseargs.c:485
#, c-format #, c-format
msgid "%s: argument needed!" msgid "%s: argument needed!"
msgstr "" msgstr "%s: необходим аргумент!"
#. / "õÖÅ × ÚÁÄÁÎÎÏÊ ÐÏÚÉÃÉÉ" #. / "õÖÅ × ÚÁÄÁÎÎÏÊ ÐÏÚÉÃÉÉ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:420 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:501
msgid "Already at position" msgid "Already at position"
msgstr "" msgstr "Уже в заданной позиции"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:181 #. / "Не могу закрыть mmap'нутый файл"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:186
msgid "Can't close mmap'ed file" msgid "Can't close mmap'ed file"
msgstr "" msgstr "Не могу закрыть mmap'нутый файл"
#. Get settings #. Get settings
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:283 #. / "Не могу получить настройки"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:291
msgid "Can't get settings" msgid "Can't get settings"
msgstr "" msgstr "Не могу получить настройки"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:190 #. / "Не могу munmap"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:196
msgid "Can't munmap" msgid "Can't munmap"
msgstr "" msgstr "Не могу munmap"
#. / "îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s" #. / "îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hidmanage.c:80 #: /Big/Data/SAO/edmund_opt/HSFW_management/hidmanage.c:80
#, c-format #, c-format
msgid "Can't open %s" msgid "Can't open %s"
msgstr "" msgstr "Не могу открыть %s"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:175
#, c-format
msgid "Can't open %s for reading"
msgstr ""
#. / "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÕÓÔÒÏÊÓÔ×Ï"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:281
msgid "Can't open device"
msgstr ""
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:293
msgid "Can't set settings"
msgstr ""
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:214
msgid "Can't setup console"
msgstr ""
#. / "Не могу открыть %s для чтения"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:177 #: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:177
#, c-format #, c-format
msgid "Can't open %s for reading"
msgstr "Не могу открыть %s для чтения"
#. / "Не могу открыть устройство"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:302
msgid "Can't open device"
msgstr "Не могу открыть устройство"
#. / "Не удалось переименовать"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:461
msgid "Can't rename"
msgstr "Не удалось переименовать"
#. / "Не могу установить настройки"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:302
msgid "Can't set settings"
msgstr "Не могу установить настройки"
#. / "Не могу настроить консоль"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:221
msgid "Can't setup console"
msgstr "Не могу настроить консоль"
#. / "Не могу выполнить stat %s"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:180
#, c-format
msgid "Can't stat %s" msgid "Can't stat %s"
msgstr "" msgstr "Не могу выполнить stat %s"
#. / "úÁÃÉËÌÉ×ÁÎÉÅ, ÐÏÐÒÏÂÕÊÔÅ ÅÝÅ ÒÁÚ" #. / "úÁÃÉËÌÉ×ÁÎÉÅ, ÐÏÐÒÏÂÕÊÔÅ ÅÝÅ ÒÁÚ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:391 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:472
msgid "Cycling detected, try again" msgid "Cycling detected, try again"
msgstr "" msgstr "Зацикливание, попробуйте еще раз"
#. / "ðÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ, ÐÏ×ÔÏÒÉÔÅ ÚÁÐÕÓË" #. / "ðÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ, ÐÏ×ÔÏÒÉÔÅ ÚÁÐÕÓË"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:234 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:255
msgid "Error ocured, repeat again" msgid "Error ocured, repeat again"
msgstr "" msgstr "Произошла ошибка, повторите запуск"
#. / "ïÛÉÂËÁ ÞÔÅÎÉÑ ÄÁÎÎÙÈ" #. / "ïÛÉÂËÁ ÞÔÅÎÉÑ ÄÁÎÎÙÈ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:168 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:187
msgid "Error reading data" msgid "Error reading data"
msgstr "" msgstr "Ошибка чтения данных"
#. / "ïÛÉÂËÁ ÏÔÐÒÁ×ËÉ ÄÁÎÎÙÈ" #. / "ïÛÉÂËÁ ÏÔÐÒÁ×ËÉ ÄÁÎÎÙÈ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:153 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:172
msgid "Error sending data" msgid "Error sending data"
msgstr "" msgstr "Ошибка отправки данных"
#. / "ïÛÉÂËÁ, ËÏÌÉÞÅÓÔ×Ï ÐÏÐÙÔÏË ÉÓÔÅËÌÏ" #. / "ïÛÉÂËÁ, ËÏÌÉÞÅÓÔ×Ï ÐÏÐÙÔÏË ÉÓÔÅËÌÏ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:192 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:211
msgid "Error, tries amount exceed" msgid "Error, tries amount exceed"
msgstr "" msgstr "Ошибка, количество попыток истекло"
#. / "æÉÌØÔÒ %s ÎÅ ÏÂÎÁÒÕÖÅÎ" #. / "æÉÌØÔÒ %s ÎÅ ÏÂÎÁÒÕÖÅÎ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:125 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:143
#, c-format #, c-format
msgid "Filter %s not found!" msgid "Filter %s not found!"
msgstr "" msgstr "Фильтр %s не обнаружен"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:111 #. / "Идентификатор фильтра - буква (колесо) и число (позиция)"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:129
msgid "Filter ID is letter (wheel) and number (position)" msgid "Filter ID is letter (wheel) and number (position)"
msgstr "" msgstr "Идентификатор фильтра - буква (колесо) и число (позиция)"
#. / "ðÏÚÉÃÉÑ ÆÉÌØÔÒÁ ÄÏÌÖÎÁ ÂÙÔØ ÞÉÓÌÏÍ ÏÔ 1 ÄÏ %d!" #. / "ðÏÚÉÃÉÑ ÆÉÌØÔÒÁ ÄÏÌÖÎÁ ÂÙÔØ ÞÉÓÌÏÍ ÏÔ 1 ÄÏ %d!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:133 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:152
#, c-format #, c-format
msgid "Filter position should be a number from 1 to %d!" msgid "Filter position should be a number from 1 to %d!"
msgstr "" msgstr "Позиция фильтра должна быть числом от 1 до %d!"
#. / "ïÂÎÁÒÕÖÅÎÏ %d ÔÕÒÅÌÅÊ, ÎÏ ÎÉ Ë ÏÄÎÏÊ ÎÅÔ ÐÒÁ× ÄÏÓÔÕÐÁ" #. / "ïÂÎÁÒÕÖÅÎÏ %d ÔÕÒÅÌÅÊ, ÎÏ ÎÉ Ë ÏÄÎÏÊ ÎÅÔ ÐÒÁ× ÄÏÓÔÕÐÁ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:372 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:400
#, c-format #, c-format
msgid "Found %d turrets but have no access rights to any" msgid "Found %d turrets but have no access rights to any"
msgstr "" msgstr "Обнаружено %d турелей, но ни к одной нет прав доступа"
#. / "úÁÄÁÎÎÁÑ ÐÏÚÉÃÉÑ ×ÎÅ ÄÉÁÐÁÚÏÎÁ 1..%d" #. / "úÁÄÁÎÎÁÑ ÐÏÚÉÃÉÑ ×ÎÅ ÄÉÁÐÁÚÏÎÁ 1..%d"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:254 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:275
#, c-format #, c-format
msgid "Given position out of range 1..%d" msgid "Given position out of range 1..%d"
msgstr "" msgstr "Заданная позиция вне диапазона 1..%d"
#. / "úÁÄÁÎÎÏÅ ËÏÌÅÓÏ ÎÅ ÏÂÎÁÒÕÖÅÎÏ!" #. / "úÁÄÁÎÎÏÅ ËÏÌÅÓÏ ÎÅ ÏÂÎÁÒÕÖÅÎÏ!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:104 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:121
msgid "Given wheel not found!" msgid "Given wheel not found!"
msgstr "" msgstr "Заданное колесо не обнаружено!"
#. / "éÇÎÏÒÉÒÕÀÔÓÑ ÐÁÒÁÍÅÔÒÙ: " #. / "éÇÎÏÒÉÒÕÀÔÓÑ ÐÁÒÁÍÅÔÒÙ: "
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:122 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:126
msgid "Ignore parameters:" msgid "Ignore parameters:"
msgstr "" msgstr "Игнорируются параметры:"
#. / "ãÅÌÏÅ ×ÎÅ ÄÏÐÕÓÔÉÍÏÇÏ ÄÉÁÐÁÚÏÎÁ" #. / "ãÅÌÏÅ ×ÎÅ ÄÏÐÕÓÔÉÍÏÇÏ ÄÉÁÐÁÚÏÎÁ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/parseargs.c:86 #: /Big/Data/SAO/edmund_opt/HSFW_management/parseargs.c:86
msgid "Integer out of range" msgid "Integer out of range"
msgstr "" msgstr "Целое вне допустимого диапазона"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:180 #. / "Ошибка mmap"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:184
msgid "Mmap error for input" msgid "Mmap error for input"
msgstr "" msgstr "Ошибка mmap"
#. / "îÅ ÐÅÒÅÄÁÎÏ ÎÉËÁËÉÈ ÁÒÇÕÍÅÎÔÏ×, ×Ù×ÏÖÕ ÓÐÉÓÏË ÐÏÄËÌÀÞÅÎÎÙÈ ÕÓÔÒÏÊÓÔ×!" #. / "Название не должно превышать восьми символов"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:130 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:420
msgid "No arguments given, list all devices connected!" msgid "Name should be not longer than 8 symbols"
msgstr "" msgstr "Название не должно превышать восьми символов"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:173 #. / "Не задано имя файла!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/usefull_macros.c:174
msgid "No filename given!" msgid "No filename given!"
msgstr "" msgstr "Не задано имя файла!"
#. / "ôÕÒÅÌÉ ÎÅ ÏÂÎÁÒÕÖÅÎÙ" #. / "ôÕÒÅÌÉ ÎÅ ÏÂÎÁÒÕÖÅÎÙ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:366 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:394
msgid "No turrets found" msgid "No turrets found"
msgstr "" msgstr "Турели не обнаружены"
#. / "Переименовано удачно!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:463
msgid "Succesfully renamed!\n"
msgstr "Переименовано удачно!\n"
#. / "ôÕÒÅÌØ ÎÅ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ, Ä×ÉÖÅÎÉÅ × \"ÄÏÍ\"" #. / "ôÕÒÅÌØ ÎÅ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÁ, Ä×ÉÖÅÎÉÅ × \"ÄÏÍ\""
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:210 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:229
msgid "Turret isn't initialized, move home..." msgid "Turret isn't initialized, move home..."
msgstr "" msgstr "Турель не инициализирована, движение в \"дом\""
#. / "ïÖÉÄÁÎÉÅ ÏËÏÎÞÁÎÉÑ Ä×ÉÖÅÎÉÑ" #. / "ïÖÉÄÁÎÉÅ ÏËÏÎÞÁÎÉÑ Ä×ÉÖÅÎÉÑ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:225 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:246
#, c-format #, c-format
msgid "Wait for end of moving " msgid "Wait for end of moving "
msgstr "" msgstr "Ожидание окончания движения"
#. / "éÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ ÄÏÌÖÅÎ ÂÙÔØ ÂÕË×ÏÊ ÏÔ \"A\" ÄÏ \"H\"!" #. / "éÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ ÄÏÌÖÅÎ ÂÙÔØ ÂÕË×ÏÊ ÏÔ \"A\" ÄÏ \"H\"!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:77 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:77
msgid "Wheel ID should be a letter from \"A\" to \"H\"!" msgid "Wheel ID should be a letter from \"A\" to \"H\"!"
msgstr "" msgstr "Идентификатор колеса должен быть буквой от \"A\" до \"H\"!"
#. / "îÅÐÒÁ×ÉÌØÎÙÊ ÁÒÇÕÍÅÎÔ \"%s\" ÐÁÒÁÍÅÔÒÁ \"%s\"" #. / "îÅÐÒÁ×ÉÌØÎÙÊ ÁÒÇÕÍÅÎÔ \"%s\" ÐÁÒÁÍÅÔÒÁ \"%s\""
#: /Big/Data/SAO/edmund_opt/HSFW_management/parseargs.c:490 #: /Big/Data/SAO/edmund_opt/HSFW_management/parseargs.c:490
#, c-format #, c-format
msgid "Wrong argument \"%s\" of parameter \"%s\"" msgid "Wrong argument \"%s\" of parameter \"%s\""
msgstr "" msgstr "Неправильный аргумент \"%s\" параметра \"%s\""
#. / "îÅÐÒÁ×ÉÌØÎÙÊ ÆÏÒÍÁÔ ÞÉÓÌÁ double!" #. / "îÅÐÒÁ×ÉÌØÎÙÊ ÆÏÒÍÁÔ ÞÉÓÌÁ double!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:97 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:101
msgid "Wrong double number format!" msgid "Wrong double number format!"
msgstr "" msgstr "Неправильный формат числа double!"
#. amount of pcount and/or scount wrong #. amount of pcount and/or scount wrong
#. / "îÅÐÒÁ×ÉÌØÎÙÊ ÆÏÒÍÁÔ ÓÔÒÏËÉ ÐÏÍÏÝÉ" #. / "îÅÐÒÁ×ÉÌØÎÙÊ ÆÏÒÍÁÔ ÓÔÒÏËÉ ÐÏÍÏÝÉ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/parseargs.c:56 #: /Big/Data/SAO/edmund_opt/HSFW_management/parseargs.c:56
msgid "Wrong helpstring!" msgid "Wrong helpstring!"
msgstr "" msgstr "Неправильный формат строки помощи"
#. / "îÅÐÒÁ×ÉÌØÎÙÊ ÐÁÒÁÍÅÔÒ: %s" #. / "îÅÐÒÁ×ÉÌØÎÙÊ ÐÁÒÁÍÅÔÒ: %s"
#: /Big/Data/SAO/edmund_opt/HSFW_management/parseargs.c:480 #: /Big/Data/SAO/edmund_opt/HSFW_management/parseargs.c:480
#, c-format #, c-format
msgid "Wrong parameter: %s" msgid "Wrong parameter: %s"
msgstr "" msgstr "Неправильный параметр: %s"
#. / "úÁÄÁÎÙ É ÉÄÅÎÔÉÆÉËÁÔÏÒ, É ÉÍÑ ËÏÌÅÓÁ; ÐÏÐÒÏÂÕÊÔÅ ÞÔÏ-ÔÏ ÏÄÎÏ!" #. / "úÁÄÁÎÙ É ÉÄÅÎÔÉÆÉËÁÔÏÒ, É ÉÍÑ ËÏÌÅÓÁ; ÐÏÐÒÏÂÕÊÔÅ ÞÔÏ-ÔÏ ÏÄÎÏ!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:89 #: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:89
msgid "You give both wheel ID and wheel name, try something one!" msgid "You give both wheel ID and wheel name, try something one!"
msgstr "" msgstr "Заданы и идентификатор, и имя колеса; попробуйте что-то одно!"
#. / "Чтобы переименовать, необходимо указать новое название фильтра/колеса и его позицию/идентификатор!"
#: /Big/Data/SAO/edmund_opt/HSFW_management/hsfw.c:436
msgid "You should give new filter/wheel name and its POS/ID to rename!"
msgstr "Чтобы переименовать, необходимо указать новое название фильтра/колеса и его позицию/идентификатор!"
#. / "ÉÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ, ÎÁÐÒÉÍÅÒ, \"A3\"" #. / "ÉÄÅÎÔÉÆÉËÁÔÏÒ ÆÉÌØÔÒÁ, ÎÁÐÒÉÍÅÒ, \"A3\""
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:71 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:75
msgid "filter identificator like \"A3\"" msgid "filter identificator like \"A3\""
msgstr "" msgstr "идентификатор фильтра, например, \"A3\""
#. / "ÎÁÚ×ÁÎÉÅ ÆÉÌØÔÒÁ" #. / "ÎÁÚ×ÁÎÉÅ ÆÉÌØÔÒÁ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:69 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:73
msgid "filter name" msgid "filter name"
msgstr "" msgstr "название фильтра"
#. / "ÎÏÍÅÒ ÐÏÚÉÃÉÉ ÆÉÌØÔÒÁ" #. / "ÎÏÍÅÒ ÐÏÚÉÃÉÉ ÆÉÌØÔÒÁ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:67 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:71
msgid "filter position number" msgid "filter position number"
msgstr "" msgstr "номер позиции фильтра"
#. / "ÂÕË×ÅÎÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ" #. / "ÂÕË×ÅÎÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ËÏÌÅÓÁ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:63 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:65
msgid "letter wheel identificator" msgid "letter wheel identificator"
msgstr "" msgstr "буквенный идентификатор колеса"
#. / "ÓÐÉÓÏË ×ÓÅÈ ÓÏÈÒÁÎÅÎÎÙÈ ÉÍÅÎ" #. / "ÓÐÉÓÏË ×ÓÅÈ ÓÏÈÒÁÎÅÎÎÙÈ ÉÍÅÎ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:73 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:77
msgid "list all stored names" msgid "list all stored names"
msgstr "" msgstr "список всех сохраненных имен"
#. / "ÓÐÉÓÏË ÉÍÅÎ ÔÏÌØËÏ ÐÒÉÓÕÔÓÔ×ÕÀÝÉÈ ÕÓÔÒÏÊÓÔ×" #. / "ÓÐÉÓÏË ÉÍÅÎ ÔÏÌØËÏ ÐÒÉÓÕÔÓÔ×ÕÀÝÉÈ ÕÓÔÒÏÊÓÔ×"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:75 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:79
msgid "list only present devices' names" msgid "list only present devices' names"
msgstr "" msgstr "список имен только присутствующих устройств"
#. / "ÐÅÒÅÍÅÓÔÉÔØÓÑ × ÓÔÁÒÔÏ×ÕÀ ÐÏÚÉÃÉÀ" #. / "ÐÅÒÅÍÅÓÔÉÔØÓÑ × ÓÔÁÒÔÏ×ÕÀ ÐÏÚÉÃÉÀ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:77 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:81
msgid "move to home position" msgid "move to home position"
msgstr "" msgstr "переместиться в стартовую позицию"
#. / "ÐÅÒÅÉÍÅÎÏ×ÁÔØ ÓÏÈÒÁÎÅÎÎÙÅ ÉÍÅÎÁ ËÏÌÅÓ/ÆÉÌØÔÒÏ×" #. / "ÐÅÒÅÉÍÅÎÏ×ÁÔØ ÓÏÈÒÁÎÅÎÎÙÅ ÉÍÅÎÁ ËÏÌÅÓ/ÆÉÌØÔÒÏ×"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:79 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:83
msgid "rename stored wheels/filters names" msgid "rename stored wheels/filters names"
msgstr "" msgstr "переименовать сохраненные имена колес/фильтров"
#. / "ÏÔÏÂÒÁÚÉÔØ ÜÔÕ ÓÐÒÁ×ËÕ" #. / "ÏÔÏÂÒÁÚÉÔØ ÜÔÕ ÓÐÒÁ×ËÕ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:61 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:63
msgid "show this help" msgid "show this help"
msgstr "" msgstr "отобразить эту справку"
#. / "серийный номер турели (с начальными нулями)"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:69
msgid "turret serial (with leading zeros)"
msgstr "серийный номер турели (с начальными нулями)"
#. / "ÎÁÚ×ÁÎÉÅ ËÏÌÅÓÁ" #. / "ÎÁÚ×ÁÎÉÅ ËÏÌÅÓÁ"
#: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:65 #: /Big/Data/SAO/edmund_opt/HSFW_management/cmdlnopts.c:67
msgid "wheel name" msgid "wheel name"
msgstr "" msgstr "название колеса"

View File

@ -170,14 +170,19 @@ mmapbuf *My_mmap(char *filename){
char *ptr; char *ptr;
size_t Mlen; size_t Mlen;
struct stat statbuf; struct stat statbuf;
/// "Не задано имя файла!"
if(!filename) ERRX(_("No filename given!")); if(!filename) ERRX(_("No filename given!"));
if((fd = open(filename, O_RDONLY)) < 0) if((fd = open(filename, O_RDONLY)) < 0)
/// "Не могу открыть %s для чтения"
ERR(_("Can't open %s for reading"), filename); ERR(_("Can't open %s for reading"), filename);
if(fstat (fd, &statbuf) < 0) if(fstat (fd, &statbuf) < 0)
/// "Не могу выполнить stat %s"
ERR(_("Can't stat %s"), filename); ERR(_("Can't stat %s"), filename);
Mlen = statbuf.st_size; Mlen = statbuf.st_size;
if((ptr = mmap (0, Mlen, PROT_READ, MAP_PRIVATE, fd, 0)) == MAP_FAILED) if((ptr = mmap (0, Mlen, PROT_READ, MAP_PRIVATE, fd, 0)) == MAP_FAILED)
/// "Ошибка mmap"
ERR(_("Mmap error for input")); ERR(_("Mmap error for input"));
/// "Не могу закрыть mmap'нутый файл"
if(close(fd)) ERR(_("Can't close mmap'ed file")); if(close(fd)) ERR(_("Can't close mmap'ed file"));
mmapbuf *ret = MALLOC(mmapbuf, 1); mmapbuf *ret = MALLOC(mmapbuf, 1);
ret->data = ptr; ret->data = ptr;
@ -187,6 +192,7 @@ mmapbuf *My_mmap(char *filename){
void My_munmap(mmapbuf *b){ void My_munmap(mmapbuf *b){
if(munmap(b->data, b->len)) if(munmap(b->data, b->len))
/// "Не могу munmap"
ERR(_("Can't munmap")); ERR(_("Can't munmap"));
FREE(b); FREE(b);
} }
@ -211,6 +217,7 @@ void setup_con(){
newt = oldt; newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO); newt.c_lflag &= ~(ICANON | ECHO);
if(tcsetattr(STDIN_FILENO, TCSANOW, &newt) < 0){ if(tcsetattr(STDIN_FILENO, TCSANOW, &newt) < 0){
/// "Не могу настроить консоль"
WARN(_("Can't setup console")); WARN(_("Can't setup console"));
tcsetattr(STDIN_FILENO, TCSANOW, &oldt); tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
signals(0); //quit? signals(0); //quit?
@ -280,6 +287,7 @@ void tty_init(char *comdev){
} }
DBG(" OK\nGet current settings... "); DBG(" OK\nGet current settings... ");
if(ioctl(comfd,TCGETA,&oldtty) < 0){ // Get settings if(ioctl(comfd,TCGETA,&oldtty) < 0){ // Get settings
/// "Не могу получить настройки"
WARN(_("Can't get settings")); WARN(_("Can't get settings"));
signals(0); signals(0);
} }
@ -290,6 +298,7 @@ void tty_init(char *comdev){
tty.c_cc[VMIN] = 0; // non-canonical mode tty.c_cc[VMIN] = 0; // non-canonical mode
tty.c_cc[VTIME] = 5; tty.c_cc[VTIME] = 5;
if(ioctl(comfd,TCSETA,&tty) < 0){ if(ioctl(comfd,TCSETA,&tty) < 0){
/// "Не могу установить настройки"
WARN(_("Can't set settings")); WARN(_("Can't set settings"));
signals(0); signals(0);
} }