]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/kern-scale/protocol.h
output/csv: use intermediate time_t var, silence compiler warning
[libsigrok.git] / src / hardware / kern-scale / protocol.h
index 1a7a51a4c578da1c89e6f74941299a3a483ec95d..7566ea5b291e2b769fef89332108de07a572383e 100644 (file)
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef LIBSIGROK_HARDWARE_KERN_SCALE_PROTOCOL_H
 #define LIBSIGROK_HARDWARE_KERN_SCALE_PROTOCOL_H
 
-#include <stdint.h>
-#include <glib.h>
-#include <libsigrok/libsigrok.h>
-#include "libsigrok-internal.h"
-
 #define LOG_PREFIX "kern-scale"
 
-/** Private, per-device-instance driver context. */
+struct scale_info {
+       /** libsigrok driver info struct. */
+       struct sr_dev_driver di;
+       /** Manufacturer/brand. */
+       const char *vendor;
+       /** Model. */
+       const char *device;
+       /** serialconn string. */
+       const char *conn;
+       /** Packet size in bytes. */
+       int packet_size;
+       /** Packet validation function. */
+       gboolean (*packet_valid)(const uint8_t *);
+       /** Packet parsing function. */
+       int (*packet_parse)(const uint8_t *, float *,
+                           struct sr_datafeed_analog *, void *);
+       /** Size of chipset info struct. */
+       gsize info_size;
+};
+
+#define SCALE_BUFSIZE 256
+
 struct dev_context {
+       struct sr_sw_limits limits;
+
+       uint8_t buf[SCALE_BUFSIZE];
+       int bufoffset;
+       int buflen;
 };
 
 SR_PRIV int kern_scale_receive_data(int fd, int revents, void *cb_data);