Обычно TPV изготавливаются с интегрированным программным обеспечением, и вы развиваете взаимодействие между ним и сервером. Теперь моя работа состоит в том, чтобы сделать эту базовую разработку, другими словами, я разрабатываю все это.
Моя проблема заключается в следующем:
Я запрограммировал ключ в TPV, который инициализируетпродажа. Это печатает тег «Введите цену» и char
с именем «цена», который инициализируется как «00,00 €»
Это просто. Теперь я хотел бы заполнить этот ценовой символ справа налево, т.е.:
- Нажатие "1": сделает цену: 00,01 €
- Следующее число («2»): 00,12 €
- Далее («3»): 01,23 €
- (...): 123,45 €
- (. ..): 123456,78 €
- и т.д ...
Этот ценовой символ используется с динамической памятью с использованием таких функций, как calloc
и realloc
, которые резервируют память для каждогонажата новая клавиша.
Пока это код, на данный момент я просто хочу реализовать эту функциональность.
char * precio = "00,00€";
int j;
while(1){ //Loop that waits for the sale to be initialized
UpdateStatusbar(fontClock);
if (!XuiHasKey()) {
continue;
}
key = XuiGetKey();
if (key == XUI_KEYUP) {
j = sizeof(precio) - 2;
//Position of the last element of precio (-2) to avoid the characters '\0' and '€'
precio = (char *) calloc(4, sizeof(char));
precio = (char *) realloc(precio, sizeof(char) + sizeof('\0'));
(Irrelevant code for printing the: "Type the price")
while (key != XUI_KEYENTER && key != XUI_KEYCANCEL) {
UpdateStatusbar(fontClock);
if (!XuiHasKey()) {
continue;
}
key = XuiGetKey();
if (key == XUI_KEYCLEAR) {
if (j > 0) {
j--;
precio[j] = '\0';
}
} //Function to delete as the backspace in your keyboard
else if (key != 'e') {
if(strcmp(precio, "0000") == 0){
precio[j] = KeyToChar(key);
}else {
for (int i = 1; i < j; ++i) {
precio[i-1] = precio[i];
precio[j] = KeyToChar(key);
}
}
//This key !='e' comes for the function KeyToChar(). 'e' means Key is not a number
}
precio = (char *) realloc(precio,
(j + 1) * sizeof(char) + sizeof('\0'));
XuiCanvasDrawText(XuiRootCanvas(), 10, 180, 20, font,
XUI_TEXT_NORMAL, colorMsgFg, precio);
} //End While
} //End if for precio
}//End While
Как вы можете видеть, я использую некоторые специальные библиотеки (XUI), предоставленныеизготовителем TPV
Если потребуется дополнительная информация, попросите ее, и я верну ее