Difference between revisions of "TruxtonUSB"
| Line 1: | Line 1: | ||
| − | This class lets you add to the [[USBDevice Table | USBDevice]] table in Truxton. | + | This class lets you add to the <code><nowiki>[</nowiki>[[USBDevice Table|USBDevice]]<nowiki>]</nowiki></code> table in Truxton. |
=Attributes and Methods= | =Attributes and Methods= | ||
| Line 6: | Line 6: | ||
==devicetype== | ==devicetype== | ||
| − | This corresponds to the <code>USBDeviceTypeID</code> column of the <code>USBDevice</code> table. | + | This corresponds to the <code>[USBDeviceTypeID]</code> column of the <code><nowiki>[</nowiki>[[USBDevice Table|USBDevice]]<nowiki>]</nowiki></code> table. |
| − | It should be a value from the <code>ID</code> column of the <code>USBDeviceType</code> table. | + | It should be a value from the <code>[ID]</code> column of the <code>[USBDeviceType]</code> table. |
==<code>fileid</code>== | ==<code>fileid</code>== | ||
The [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the file this device came from. | The [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the file this device came from. | ||
| − | This corresponds to the <code>FileID</code> column of the [[USBDevice Table | < | + | This corresponds to the <code>[FileID]</code> column of the <code><nowiki>[</nowiki>[[USBDevice Table|USBDevice]]<nowiki>]</nowiki></code> table. |
==<code>id</code>== | ==<code>id</code>== | ||
This is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the record. | This is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the record. | ||
It becomes non-zero after <code>save()</code> has been called. | It becomes non-zero after <code>save()</code> has been called. | ||
| − | This corresponds to the <code>ID</code> column of the [[USBDevice Table | < | + | This corresponds to the <code>[ID]</code> column of the <code><nowiki>[</nowiki>[[USBDevice Table|USBDevice]]<nowiki>]</nowiki></code> table. |
==<code>mediaid</code>== | ==<code>mediaid</code>== | ||
This is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the media this device came from. | This is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the media this device came from. | ||
| − | This corresponds to the <code>MediaID</code> column of the [[USBDevice Table | < | + | This corresponds to the <code>[MediaID]</code> column of the <code><nowiki>[</nowiki>[[USBDevice Table|USBDevice]]<nowiki>]</nowiki></code> table. |
| − | ==offset== | + | ==<code>offset</code>== |
The offset into the file where this device was found. | The offset into the file where this device was found. | ||
| − | This corresponds to the <code>Offset</code> column of the [[USBDevice Table | < | + | This corresponds to the <code>[Offset]</code> column of the <code><nowiki>[</nowiki>[[USBDevice Table|USBDevice]]<nowiki>]</nowiki></code> table. |
| − | ==productid== | + | ==<code>productid</code>== |
The product id of the device. | The product id of the device. | ||
| − | This corresponds to the <code>PID</code> column of the [[USBDevice Table | < | + | This corresponds to the <code>[PID]</code> column of the <code><nowiki>[</nowiki>[[USBDevice Table|USBDevice]]<nowiki>]</nowiki></code> table. |
| − | This may contain a value in the <code>PID</code> column of the <code>USBPIDVID</code> table. | + | This may contain a value in the <code>[PID]</code> column of the <code>[USBPIDVID]</code> table. |
| − | ==revision== | + | ==<code>revision</code>== |
The revision of the device. | The revision of the device. | ||
==<code>save()</code>== | ==<code>save()</code>== | ||
| − | This will commit the information to the [[USBDevice Table | < | + | This will commit the information to the <code><nowiki>[</nowiki>[[USBDevice Table|USBDevice]]<nowiki>]</nowiki></code> table. |
It will return [https://docs.python.org/3/library/constants.html#True True] if the record was saved to the database, [https://docs.python.org/3/library/constants.html#False False] if there was an error. | It will return [https://docs.python.org/3/library/constants.html#True True] if the record was saved to the database, [https://docs.python.org/3/library/constants.html#False False] if there was an error. | ||
| Line 41: | Line 41: | ||
This creates a tag associated with this device in Truxton. | This creates a tag associated with this device in Truxton. | ||
The <code>tag</code> parameter is a short, one or two word, bit of text that will be displayed in the UI. | The <code>tag</code> parameter is a short, one or two word, bit of text that will be displayed in the UI. | ||
| − | The <code>reason</code> a sentence explaining why this device was tagged. | + | The <code>reason</code> is a sentence explaining why this device was tagged. |
The <code>origin</code> is either <code>TAG_ORIGIN_AUTOMATIC</code> (1) or <code>TAG_ORIGIN_HUMAN</code> (2). | The <code>origin</code> is either <code>TAG_ORIGIN_AUTOMATIC</code> (1) or <code>TAG_ORIGIN_HUMAN</code> (2). | ||
It will return | It will return | ||
[https://docs.python.org/3.8/library/constants.html?highlight=false#True True] if the tag was associated with the device, [https://docs.python.org/3.8/library/constants.html?highlight=false#False False] on failure. | [https://docs.python.org/3.8/library/constants.html?highlight=false#True True] if the tag was associated with the device, [https://docs.python.org/3.8/library/constants.html?highlight=false#False False] on failure. | ||
| − | ==vendorid== | + | ==<code>vendorid</code>== |
The [https://en.wikipedia.org/wiki/USB_Implementers_Forum#Obtaining_a_vendor_ID vendor id] (VID) of the device. | The [https://en.wikipedia.org/wiki/USB_Implementers_Forum#Obtaining_a_vendor_ID vendor id] (VID) of the device. | ||
| − | This corresponds to the <code>VID</code> column of the [[USBDevice Table | < | + | This corresponds to the <code>[VID]</code> column of the <code><nowiki>[</nowiki>[[USBDevice Table|USBDevice]]<nowiki>]</nowiki></code> table. |
==<code>when</code>== | ==<code>when</code>== | ||
| Line 54: | Line 54: | ||
=Sample= | =Sample= | ||
| − | + | <source lang="Python" highlight="41-47"> | |
| − | < | ||
import truxton | import truxton | ||
import shutil | import shutil | ||
| Line 94: | Line 93: | ||
def add_cs(parent_file ): | def add_cs(parent_file ): | ||
| − | child_file = add_file(parent_file, " | + | child_file = add_file(parent_file, "device.db") |
| − | + | thumbdrive = child_file.newlocation() | |
gps.type = truxton.LOCATION_TYPE_MEETING | gps.type = truxton.LOCATION_TYPE_MEETING | ||
gps.latitude = 51.487329 | gps.latitude = 51.487329 | ||
| Line 116: | Line 115: | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
main() | main() | ||
| − | </ | + | </source> |
Revision as of 06:44, 8 December 2020
This class lets you add to the [USBDevice] table in Truxton.
Contents
Attributes and Methods
deviceid
A GUID assigned to the device by Windows.
devicetype
This corresponds to the [USBDeviceTypeID] column of the [USBDevice] table.
It should be a value from the [ID] column of the [USBDeviceType] table.
fileid
The GUID of the file this device came from.
This corresponds to the [FileID] column of the [USBDevice] table.
id
This is the GUID of the record.
It becomes non-zero after save() has been called.
This corresponds to the [ID] column of the [USBDevice] table.
mediaid
This is the GUID of the media this device came from.
This corresponds to the [MediaID] column of the [USBDevice] table.
offset
The offset into the file where this device was found.
This corresponds to the [Offset] column of the [USBDevice] table.
productid
The product id of the device.
This corresponds to the [PID] column of the [USBDevice] table.
This may contain a value in the [PID] column of the [USBPIDVID] table.
revision
The revision of the device.
save()
This will commit the information to the [USBDevice] table.
It will return True if the record was saved to the database, False if there was an error.
tag(tag, reason, origin)
This creates a tag associated with this device in Truxton.
The tag parameter is a short, one or two word, bit of text that will be displayed in the UI.
The reason is a sentence explaining why this device was tagged.
The origin is either TAG_ORIGIN_AUTOMATIC (1) or TAG_ORIGIN_HUMAN (2).
It will return
True if the tag was associated with the device, False on failure.
vendorid
The vendor id (VID) of the device.
This corresponds to the [VID] column of the [USBDevice] table.
when
The time associated with this device in FILETIME ticks.
Sample
import truxton
import shutil
from datetime import datetime
from calendar import timegm
from pathlib import Path
EPOCH_AS_FILETIME = 116444736000000000
HUNDREDS_OF_NANOSECONDS = 10000000
def date_to_filetime(dt):
return EPOCH_AS_FILETIME + (timegm(dt.timetuple()) * HUNDREDS_OF_NANOSECONDS)
def add_file(parent_truxton_file, filename):
source_file = open(filename, "rb")
child = parent_truxton_file.newchild()
child.name = Path(filename).name
shutil.copyfileobj(source_file, child)
source_file.close()
child.save()
return child
def add_media(t):
media = t.newmedia()
media.name = "Public Documents"
media.description = "Publicly available documents"
media.case = "DC-SNAFU-2016.2020"
media.evidencebag = "EV-0937459386623-a"
media.originator = "Jeffrey Jensen"
media.latitude = 38.897661
media.longitude = -77.036458
media.type = truxton.MEDIA_TYPE_LOGICAL_FILES
media.save()
return media
def add_cs(parent_file ):
child_file = add_file(parent_file, "device.db")
thumbdrive = child_file.newlocation()
gps.type = truxton.LOCATION_TYPE_MEETING
gps.latitude = 51.487329
gps.longitude = -0.124057
gps.label = "HQ"
gps.when= date_to_filetime(datetime.fromisoformat("2016-04-01T12:00:00-05:00"))
gps.save()
def main():
t = truxton.create()
media = add_media(t)
root_file = media.addroot()
root_file.save()
add_cs(root_file)
if __name__ == "__main__":
main()