little changes: arg reordering, ...
This commit is contained in:
@@ -291,6 +291,7 @@ CFontz633_init (Driver *drvthis, char *args)
|
|||||||
CFontz633_reboot (drvthis);
|
CFontz633_reboot (drvthis);
|
||||||
reboot = 0;
|
reboot = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
CFontz633_hidecursor (drvthis);
|
CFontz633_hidecursor (drvthis);
|
||||||
|
|
||||||
CFontz633_set_contrast (drvthis, p->contrast);
|
CFontz633_set_contrast (drvthis, p->contrast);
|
||||||
@@ -370,7 +371,7 @@ CFontz633_flush (Driver *drvthis)
|
|||||||
out[0] = (unsigned char) (i % p->width); // column
|
out[0] = (unsigned char) (i % p->width); // column
|
||||||
out[1] = (unsigned char) (i / p->width); // line
|
out[1] = (unsigned char) (i / p->width); // line
|
||||||
out[2] = p->framebuf[i]; // character
|
out[2] = p->framebuf[i]; // character
|
||||||
send_bytes_message(fd, 3, CF633_Send_Data_to_LCD, out);
|
send_bytes_message(fd, CF633_Send_Data_to_LCD, 3, out);
|
||||||
p->backingstore[i] = p->framebuf[i];
|
p->backingstore[i] = p->framebuf[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -384,7 +385,7 @@ CFontz633_flush (Driver *drvthis)
|
|||||||
|
|
||||||
for (i = 0; i < p->width; i++) {
|
for (i = 0; i < p->width; i++) {
|
||||||
if (*xp++ != *xq++) {
|
if (*xp++ != *xq++) {
|
||||||
send_bytes_message(p->fd, 16, CF633_Set_LCD_Contents_Line_One, p->framebuf);
|
send_bytes_message(p->fd, CF633_Set_LCD_Contents_Line_One, 16, p->framebuf);
|
||||||
memcpy(p->backingstore, p->framebuf, p->width);
|
memcpy(p->backingstore, p->framebuf, p->width);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -395,7 +396,7 @@ CFontz633_flush (Driver *drvthis)
|
|||||||
|
|
||||||
for (i = 0; i < p->width; i++) {
|
for (i = 0; i < p->width; i++) {
|
||||||
if (*xp++ != *xq++) {
|
if (*xp++ != *xq++) {
|
||||||
send_bytes_message(p->fd, 16, CF633_Set_LCD_Contents_Line_Two, p->framebuf + p->width);
|
send_bytes_message(p->fd, CF633_Set_LCD_Contents_Line_Two, 16, p->framebuf + p->width);
|
||||||
memcpy(p->backingstore + p->width, p->framebuf + p->width, p->width);
|
memcpy(p->backingstore + p->width, p->framebuf + p->width, p->width);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -536,7 +537,7 @@ CFontz633_no_live_report (Driver *drvthis)
|
|||||||
unsigned char out[2] = { 0, 0 };
|
unsigned char out[2] = { 0, 0 };
|
||||||
|
|
||||||
for (out[0] = 0; out[0] < 8; out[0]++) {
|
for (out[0] = 0; out[0] < 8; out[0]++) {
|
||||||
send_bytes_message(p->fd, 2, CF633_Set_Up_Live_Fan_or_Temperature_Display, out);
|
send_bytes_message(p->fd, CF633_Set_Up_Live_Fan_or_Temperature_Display, 2, out);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -562,7 +563,7 @@ CFontz633_no_temp_report (Driver *drvthis)
|
|||||||
PrivateData *p = drvthis->private_data;
|
PrivateData *p = drvthis->private_data;
|
||||||
unsigned char out[4] = { 0, 0, 0, 0 };
|
unsigned char out[4] = { 0, 0, 0, 0 };
|
||||||
|
|
||||||
send_bytes_message(p->fd, 4, CF633_Set_Up_Temperature_Reporting, out);
|
send_bytes_message(p->fd, CF633_Set_Up_Temperature_Reporting, 4, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -575,7 +576,7 @@ CFontz633_reboot (Driver *drvthis)
|
|||||||
PrivateData *p = drvthis->private_data;
|
PrivateData *p = drvthis->private_data;
|
||||||
unsigned char out[3] = { 8, 18, 99 };
|
unsigned char out[3] = { 8, 18, 99 };
|
||||||
|
|
||||||
send_bytes_message(p->fd, 3, CF633_Reboot, out);
|
send_bytes_message(p->fd, CF633_Reboot, 3, out);
|
||||||
sleep(2);
|
sleep(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -848,7 +849,7 @@ CFontz633_set_char (Driver *drvthis, int n, char *dat)
|
|||||||
}
|
}
|
||||||
out[row+1] = letter;
|
out[row+1] = letter;
|
||||||
}
|
}
|
||||||
send_bytes_message(p->fd, 9, CF633_Set_LCD_Special_Character_Data, out);
|
send_bytes_message(p->fd, CF633_Set_LCD_Special_Character_Data, 9, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
* www.crystalfontz.com
|
* www.crystalfontz.com
|
||||||
* ===========================================================================
|
* ===========================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "CFontz633io.h"
|
#include "CFontz633io.h"
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -25,11 +26,12 @@
|
|||||||
#define GIVE_UP 2
|
#define GIVE_UP 2
|
||||||
|
|
||||||
|
|
||||||
/* static local fuinctions */
|
/* static local functions */
|
||||||
static void send_packet(int fd, COMMAND_PACKET *out);
|
static void send_packet(int fd, COMMAND_PACKET *out);
|
||||||
static int get_crc(char * bufptr, int len, int seed);
|
static int get_crc(char *buf, int len, int seed);
|
||||||
static int check_for_packet(int fd, unsigned char expected_length);
|
static int test_packet(int fd);
|
||||||
static void treat_packet(void);
|
static void treat_packet(void);
|
||||||
|
static int check_for_packet(int fd, unsigned char expected_length);
|
||||||
static void print_packet(COMMAND_PACKET *packet);
|
static void print_packet(COMMAND_PACKET *packet);
|
||||||
|
|
||||||
|
|
||||||
@@ -91,13 +93,13 @@ unsigned char GetKeyFromKeyRing(KeyRing *kr)
|
|||||||
|
|
||||||
|
|
||||||
/** send message with arguments to the given handle */
|
/** send message with arguments to the given handle */
|
||||||
void send_bytes_message(int fd, int len, int msg, unsigned char *data)
|
void send_bytes_message(int fd, unsigned char msg, int len, unsigned char *data)
|
||||||
{
|
{
|
||||||
COMMAND_PACKET out;
|
COMMAND_PACKET out;
|
||||||
|
|
||||||
out.command = msg;
|
out.command = msg;
|
||||||
out.data_length = len;
|
out.data_length = (unsigned char) ((len > MAX_DATA_LENGTH) ? MAX_DATA_LENGTH : len);
|
||||||
memcpy(out.data, data, len);
|
memcpy(out.data, data, out.data_length);
|
||||||
|
|
||||||
/* send message & calc CRC */
|
/* send message & calc CRC */
|
||||||
send_packet(fd, &out);
|
send_packet(fd, &out);
|
||||||
@@ -105,7 +107,7 @@ void send_bytes_message(int fd, int len, int msg, unsigned char *data)
|
|||||||
|
|
||||||
|
|
||||||
/** send message with one byte argument to the given handle */
|
/** send message with one byte argument to the given handle */
|
||||||
void send_onebyte_message(int fd, int msg, unsigned char value)
|
void send_onebyte_message(int fd, unsigned char msg, unsigned char value)
|
||||||
{
|
{
|
||||||
COMMAND_PACKET out;
|
COMMAND_PACKET out;
|
||||||
|
|
||||||
@@ -119,7 +121,7 @@ void send_onebyte_message(int fd, int msg, unsigned char value)
|
|||||||
|
|
||||||
|
|
||||||
/** send message without data to the given handle */
|
/** send message without data to the given handle */
|
||||||
void send_zerobyte_message(int fd, int msg)
|
void send_zerobyte_message(int fd, unsigned char msg)
|
||||||
{
|
{
|
||||||
COMMAND_PACKET out;
|
COMMAND_PACKET out;
|
||||||
|
|
||||||
@@ -237,7 +239,7 @@ void EmptyReceiveBuffer(ReceiveBuffer *rb)
|
|||||||
|
|
||||||
|
|
||||||
/** read given number of bytes from given file handle into receive buffer */
|
/** read given number of bytes from given file handle into receive buffer */
|
||||||
void SyncReceiveBuffer(int fd, ReceiveBuffer *rb, unsigned int number)
|
void SyncReceiveBuffer(ReceiveBuffer *rb, int fd, unsigned int number)
|
||||||
{
|
{
|
||||||
unsigned char buffer[MAX_DATA_LENGTH];
|
unsigned char buffer[MAX_DATA_LENGTH];
|
||||||
int BytesRead;
|
int BytesRead;
|
||||||
@@ -354,7 +356,8 @@ unsigned char PeekByte(ReceiveBuffer *rb)
|
|||||||
/* I should use the value GIVE_UP and not reenter if there is no extra
|
/* I should use the value GIVE_UP and not reenter if there is no extra
|
||||||
* byte read from the serial port
|
* byte read from the serial port
|
||||||
*/
|
*/
|
||||||
int test_packet(int fd)
|
static int
|
||||||
|
test_packet(int fd)
|
||||||
{
|
{
|
||||||
int is_msg;
|
int is_msg;
|
||||||
|
|
||||||
@@ -403,7 +406,7 @@ check_for_packet(int fd, unsigned char expected_length)
|
|||||||
int i;
|
int i;
|
||||||
int testcrc;
|
int testcrc;
|
||||||
|
|
||||||
SyncReceiveBuffer(fd, &receivebuffer, expected_length);
|
SyncReceiveBuffer(&receivebuffer, fd, expected_length);
|
||||||
|
|
||||||
//First off, there must be at least 4 bytes available in the input stream
|
//First off, there must be at least 4 bytes available in the input stream
|
||||||
//for there to be a valid command in it (command, length, no data, CRC).
|
//for there to be a valid command in it (command, length, no data, CRC).
|
||||||
|
|||||||
@@ -99,17 +99,16 @@ typedef struct {
|
|||||||
} COMMAND_PACKET;
|
} COMMAND_PACKET;
|
||||||
|
|
||||||
|
|
||||||
/* KeyRing management */
|
|
||||||
void EmptyKeyRing(KeyRing *kr);
|
void EmptyKeyRing(KeyRing *kr);
|
||||||
int AddKeyToKeyRing(KeyRing *kr, unsigned char key);
|
int AddKeyToKeyRing(KeyRing *kr, unsigned char key);
|
||||||
unsigned char GetKeyFromKeyRing(KeyRing *kr);
|
unsigned char GetKeyFromKeyRing(KeyRing *kr);
|
||||||
|
|
||||||
void send_bytes_message(int fd, int len, int msg, unsigned char *data);
|
void send_bytes_message(int fd, unsigned char msg, int len, unsigned char *data);
|
||||||
void send_onebyte_message(int fd, int msg, unsigned char value);
|
void send_onebyte_message(int fd, unsigned char msg, unsigned char value);
|
||||||
void send_zerobyte_message(int fd, int msg);
|
void send_zerobyte_message(int fd, unsigned char msg);
|
||||||
|
|
||||||
void EmptyReceiveBuffer(ReceiveBuffer *rb);
|
void EmptyReceiveBuffer(ReceiveBuffer *rb);
|
||||||
void SyncReceiveBuffer(int fd, ReceiveBuffer *rb, unsigned int number);
|
void SyncReceiveBuffer(ReceiveBuffer *rb, int fd, unsigned int number);
|
||||||
int BytesAvail(ReceiveBuffer *rb);
|
int BytesAvail(ReceiveBuffer *rb);
|
||||||
unsigned char GetByte(ReceiveBuffer *rb);
|
unsigned char GetByte(ReceiveBuffer *rb);
|
||||||
int PeekBytesAvail(ReceiveBuffer *rb);
|
int PeekBytesAvail(ReceiveBuffer *rb);
|
||||||
@@ -117,8 +116,6 @@ void SyncPeekPointer(ReceiveBuffer *rb);
|
|||||||
void AcceptPeekedData(ReceiveBuffer *rb);
|
void AcceptPeekedData(ReceiveBuffer *rb);
|
||||||
unsigned char PeekByte(ReceiveBuffer *rb);
|
unsigned char PeekByte(ReceiveBuffer *rb);
|
||||||
|
|
||||||
int test_packet(int fd);
|
|
||||||
|
|
||||||
|
|
||||||
/* global variables */
|
/* global variables */
|
||||||
extern KeyRing keyring;
|
extern KeyRing keyring;
|
||||||
|
|||||||
@@ -434,7 +434,7 @@ CFontz633_flush (Driver *drvthis)
|
|||||||
|
|
||||||
for (i = 0; i < p->width; i++) {
|
for (i = 0; i < p->width; i++) {
|
||||||
if (*xp++ != *xq++) {
|
if (*xp++ != *xq++) {
|
||||||
send_bytes_message(p->fd, 16, CF633_Set_LCD_Contents_Line_One, p->framebuf);
|
send_bytes_message(p->fd, CF633_Set_LCD_Contents_Line_One, 16, p->framebuf);
|
||||||
memcpy(p->backingstore, p->framebuf, p->width);
|
memcpy(p->backingstore, p->framebuf, p->width);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -445,7 +445,7 @@ CFontz633_flush (Driver *drvthis)
|
|||||||
|
|
||||||
for (i = 0; i < p->width; i++) {
|
for (i = 0; i < p->width; i++) {
|
||||||
if (*xp++ != *xq++) {
|
if (*xp++ != *xq++) {
|
||||||
send_bytes_message(p->fd, 16, CF633_Set_LCD_Contents_Line_Two, p->framebuf + p->width);
|
send_bytes_message(p->fd, CF633_Set_LCD_Contents_Line_Two, 16, p->framebuf + p->width);
|
||||||
memcpy(p->backingstore + p->width, p->framebuf + p->width, p->width);
|
memcpy(p->backingstore + p->width, p->framebuf + p->width, p->width);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -489,7 +489,7 @@ CFontz633_flush (Driver *drvthis)
|
|||||||
&p->framebuf[first_diff + (i * p->width)] );
|
&p->framebuf[first_diff + (i * p->width)] );
|
||||||
|
|
||||||
memcpy(&out[2], &p->framebuf[first_diff + (i * p->width)], diff_length );
|
memcpy(&out[2], &p->framebuf[first_diff + (i * p->width)], diff_length );
|
||||||
send_bytes_message(p->fd, diff_length + 2, CF633_Send_Data_to_LCD, out);
|
send_bytes_message(p->fd, CF633_Send_Data_to_LCD, diff_length + 2, out);
|
||||||
}
|
}
|
||||||
} // j < p->width
|
} // j < p->width
|
||||||
} // i < p->height
|
} // i < p->height
|
||||||
@@ -659,7 +659,7 @@ CFontz633_no_live_report (Driver *drvthis)
|
|||||||
|
|
||||||
if (p->model == 633) {
|
if (p->model == 633) {
|
||||||
for (out[0] = 0; out[0] < 8; out[0]++)
|
for (out[0] = 0; out[0] < 8; out[0]++)
|
||||||
send_bytes_message(p->fd, 2, CF633_Set_Up_Live_Fan_or_Temperature_Display, out);
|
send_bytes_message(p->fd, CF633_Set_Up_Live_Fan_or_Temperature_Display, 2, out);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -687,7 +687,7 @@ CFontz633_no_temp_report (Driver *drvthis)
|
|||||||
unsigned char out[4] = { 0, 0, 0, 0 };
|
unsigned char out[4] = { 0, 0, 0, 0 };
|
||||||
|
|
||||||
if (p->model == 633)
|
if (p->model == 633)
|
||||||
send_bytes_message(p->fd, 4, CF633_Set_Up_Temperature_Reporting, out);
|
send_bytes_message(p->fd, CF633_Set_Up_Temperature_Reporting, 4, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -700,7 +700,7 @@ CFontz633_reboot (Driver *drvthis)
|
|||||||
PrivateData *p = drvthis->private_data;
|
PrivateData *p = drvthis->private_data;
|
||||||
unsigned char out[3] = { 8, 18, 99 };
|
unsigned char out[3] = { 8, 18, 99 };
|
||||||
|
|
||||||
send_bytes_message(p->fd, 3, CF633_Reboot, out);
|
send_bytes_message(p->fd, CF633_Reboot, 3, out);
|
||||||
sleep(2);
|
sleep(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -973,7 +973,7 @@ CFontz633_set_char (Driver *drvthis, int n, char *dat)
|
|||||||
}
|
}
|
||||||
out[row+1] = letter;
|
out[row+1] = letter;
|
||||||
}
|
}
|
||||||
send_bytes_message(p->fd, 9, CF633_Set_LCD_Special_Character_Data, out);
|
send_bytes_message(p->fd, CF633_Set_LCD_Special_Character_Data, 9, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user